E D R , A S I H C RSS

Full text search for "Lines In The Plane"

Lines%20 In%20 The%20 Plane


Search BackLinks only
Display context of search results
Case-sensitive searching
  • 경시대회준비반/BigInteger . . . . 427 matches
         C++ 용 BigInteger 클래스로 거의 모든 연산을 지원한다. UVA 사이트의 구식(?) 컴파일러에도 문제없이 통과할 뿐 아니라, 성능또한 훌륭하다. 고정도 정수 연산을 하는 문제의 경우, 고정도 연산을 하는 라이브러리를 본인이 직접 짜거나, 이 클래스를 이용하면 된다. 몇 일동안 삽질한 결과 후자가 낫다는 판단이 선다. 되게 잘 짜여진 코드다. 시간 내서 분석해봐야 겠다.
         * BigInteger Class
         * provided that the above copyright notice appear in all copies and
         * in supporting documentation. Mahbub Murshed Suman makes no
         * representations about the suitability of this software for any
         #include <iostream>
         #include <cstdlib>
         #include <cstdio>
         #include <cctype>
         #include <malloc.h>
         #include <cmath>
         #include <cstring>
         #include <ctime>
         #include <strstream>
         #include <string>
         #include <stdexcept>
         using namespace std;
          enum BigMathERROR { BigMathMEM = 1 , BigMathOVERFLOW , BigMathUNDERFLOW, BigMathINVALIDINTEGER, BigMathDIVIDEBYZERO,BigMathDomain};
          const char *BigIntErrDes[] = { "Allocation Failed", "Overflow","Underflow", "Invalid Integer", "Divide by Zero" ,"Domain Error"};
          const char BigIntPROGRAMNAME[] = { "BigInteger" };
  • ScheduledWalk/석천 . . . . 421 matches
         ["데블스캠프2002"]때 소개했었던 StructuredProgramming 기법을 처음부터 끝까지 진행하는 모습을 보여드립니다. 중간에 버그가 발생하고, 그 버그를 수정한 소스를 그대로 실어봅니다. 그대로 따라해보셔도 좋을듯. 단, 중간 삽질과 컴파일 에러에 겁먹지만 않으신다면. ^^;
         StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
         int main ()
          Input ();
         void Input () {
         int main ()
          Input ();
         === Version 0.2 - Refinement ===
         void Input() {
          InputBoardSize();
          InputStartRoachPosition();
          InputRoachJourney();
         void InputBoardSize() {
         void InputStartRoachPosition() {
         void InputRoachJourney() {
          while (!IsFinished()) {
         BOOL IsFinished() {
         === Version 0.3 - Refinement More ===
         typedef int BOOL;
         void Input();
  • VendingMachine/세연/1002 . . . . 102 matches
         void printMenu () {
         bool isEndMenu (int choice) {
          printMenu ();
          cin >> choice;
         bool isEndMenu (int choice) {
          MENU_INSERT_DRINK
          VendingMachine.GetMoney();
          VendingMachine.Buy();
          VendingMachine.TakeBackMoney();
          case MENU_INSERT_DRINK:
          VendingMachine.InsertDrink();
         bool isValidMenu (int choice) {
         bool isValidMenu (int choice) {
          return choice >= MENU_END && choice <= MENU_INSERT_DRINK;
          MENU_INSERT_DRINK,
          MENU_END = MENU_INSERT_DRINK
         bool isEndMenu (int choice) {
         bool isValidMenu (int choice) {
          VendingMachine.EndMachine();
          VendingMachine.PrintErrorMessage ();
  • MatrixAndQuaternionsFaq . . . . 95 matches
         == The Matrix and Quaternions FAQ ==
         This FAQ is maintained by "hexapod@netcom.com". Any additional suggestions or related questions are welcome. Just send E-mail to the above address.
          Introduction I1: steve@mred.bgm.link.com
         I1. Important note relating to OpenGL and this document
         Q2. What is the order of a matrix?
         Q3. How do I represent a matrix using the C/C++ programming languages?
         Q4. What are the advantages of using matrices?
         Q5. How do matrices relate to coordinate systems?
         Q6. What is the identity matrix?
         Q7. What is the major diagonal matrix of a matrix?
         Q8. What is the transpose of a matrix?
         Q9. How do I add two matrices together?
         Q11. How do I multiply two matrices together?
         DETERMINANTS AND INVERSES
         Q14. What is the determinant of a matrix?
         Q15. How do I calculate the determinant of a matrix?
         Q17. What is the inverse of a matrix?
         Q18. How do I calculate the inverse of an arbitary matrix?
         Q19. How do I calculate the inverse of an identity matrix?
         Q20. How do I calculate the inverse of a rotation matrix?
  • 신기호/중대생rpg(ver1.0) . . . . 71 matches
          * Total lines of code: 760(스압 주의)
         #include <stdio.h>
         #include <string.h>
         #include <stdlib.h>
         #include <time.h>
         #include <io.h>
         #define MAX_STRING 100
         #define MAX_TOWN 5
         #define MAX_ENEMY 5
         #define MAX_ITEMS 40
         #define FILE_NAME "csave.dat"
          int base_hp;
          int hp;
          int max_hp;
          int att;
          int base_att;
          int def;
          int base_def;
          char name[MAX_STRING];
          int townNum;
  • RandomWalk2/Insu . . . . 69 matches
         #define _RANDOM_WALK_H
          int _nRow;
          int _nCol;
          int _nCurRow;
          int _nCurCol;
          int _nTotalVisitCount;
          int **_arVisitFrequency;
          int _arDirectionX[8];
          int _arDirectionY[8];
          RandomWalkBoard(int nRow, int nCol, int nCurRow, int nCurCol, char *szCourse, int DirectX[], int DirectY[]);
          void IncreaseVisitCount();
          void IncreaseTotalVisitCount();
          void CheckDirectionAndMove(int direction);
          void DirectionAllocate(int x[], int y[]);
         #include "RandomWalkBoard.h"
         #include <cstring>
         #include <iostream>
         using namespace std;
         RandomWalkBoard::RandomWalkBoard(int nRow, int nCol, int nCurRow, int nCurCol, char *szCourse, int DirectX[], int DirectY[])
          _arVisitFrequency = new int*[_nRow];
  • 만년달력/김정현 . . . . 69 matches
         TimeInfo에서 시간 정보를 얻어와
         public class TimeInfo {
          private static final int BLANK = 1;
          private int[] days= {31,28,31,30,31,30,31,31,30,31,30,31};
          private String[] dayNames= {
          public int getDaysInMonth(int month) {
          public int getDaysInYearMonth(int year, int month) {
          return getDaysInMonth(month)+1;
          return getDaysInMonth(month);
          private boolean isSpecialYear(int year) {
          public int getDaysInYear(int year) {
          private boolean isProperMonth(int year, int month) {
          private boolean isProperDate(int year, int month, int day) {
          && ( 0 < day && day <= getDaysInYearMonth(year, month) );
          public String getDayName(int year, int month, int day) {
          int reducedDays= getTotalDaysUntil(year, month, day)%dayNames.length;
          private String getDayName(int sequence) {
          public int getTotalDaysUntil(int year, int month, int day) {
          int totalDays= 0;
          for(int i=1;i<year;i++) {
  • WikiTextFormattingTestPage . . . . 68 matches
         Revised 1/05/01, 5:45 PM EST -- adding "test" links in double square brackets, as TWiki allows.
         This page originated on Wiki:WardsWiki, and the most up-to-date copy resides there. This page has been copied here in order to make a quick visual determination of which TextFormattingRules work for this wiki. Currently it primarily determines how text formatted using the original Wiki:WardsWiki text formatting rules is displayed. See http://www.c2.com/cgi/wiki?WikiOriginalTextFormattingRules.
         If you want to see how this text appears in the original Wiki:WardsWiki, see http://www.c2.com/cgi/wiki?WikiEngineReviewTextFormattingTest
         People reviewing this wiki from the original Wiki:WardsWiki will be referred to this page. If you want to see the review, go to http://www.c2.com/cgi/wiki?WikiEngineReview.
         Other places this page appears (perhaps as an older version):
          * CLUG Wiki (older version of WardsWiki, modified by JimWeirich) -- http://www.clug.org/cgi/wiki.cgi?WikiEngineReviewTextFormattingTest
          * MoinMoin (MoinMoin 0.5) -- http://www.encrypted.net/~jh/moinmoin/moin.cgi/WikiTextFormattingTestPage
          * Kit-T-Wiki (TWiki 01) -- http://kit.sourceforge.net/cgi-bin/view/Main/WikiReviewTextFormattingTest
          * TWiki (TWiki 03) -- http://twiki.sourceforge.net/cgi-bin/view/TWiki/WikiReviewTextFormattingTest
         http://narasimha.tangentially.com/cgi-bin/n.exe?twiky%20editWiki(%22WikiEngineReviewTextFormattingTest%22)
          * UseMod wiki (UseMod 0.88) -- http://www.usemod.com/cgi-bin/wiki.pl?WikiEngineReviewTextFormattingTest
         This page contains sample marked up text to make a quick visual determination as to which Wiki:TextFormattingRules work for a given wiki. To use the page, copy the text from the edit window, and paste it in the wiki under test. Then read it.
         And, the next logical thing to do is put a page like this on a public wiki running each Wiki:WikiEngine, and link to it from the appropriate Wiki:WikiReview page, as has been done in some cases -- see above.
         The next line (4 dashes) should show up as a horizontal rule. In a few wikis, the width of the rule is controlled by the number of dashes. That will be tested in a later section of this test page.
         '''Wiki:WikiOriginalTextFormattingRules'''
         This first section will test the Wiki:WikiOriginalTextFormattingRules.
         If a wiki properly interprets the Wiki:WikiOriginalTextFormattingRules, the text will appear as described here.
         This should appear as plain variable width text, not bold or italic.
         The original Wiki:WardsWiki text formatting rules make no provision for headings. They can be simulated by applying emphasis. See the next several lines.
         'This text, enclosed within in 1 set of single quotes, should appear as normal text surrounded by 1 set of single quotes.'
  • JavaNetworkProgramming . . . . 67 matches
         *'''지금은 여기서 접는것이고. 누군가 Java Network Programming을 본다면 참여하기 바란다 ^^;;'''
         JAVA Network Programming
          public class AuthException extends IOException{ //사용자 예외를 정의할때 적당한 예외 클래스의 서브클래스가 되는것이 중요한데
          public AuthException(){ //네트워킹 코드에서는 IOException이 적당하다.
          public AuthException(String detail){
          public static void main(String[] args){
          public synchronized void begin(){ //동기화
          execution.setPriority(Thread.MIN_PRIORITY); //우선수위를 정함
          execution.interrupt(); //stop()을 쓰는 것은 별로 바람직하지 않다 stop()은 쓰레드가 어떤 상황에 있더라도 쓰레드를 바로 멈추어 버리기 때문에,
          } //사용하는 방법이 더좋다. 가장 권장되는 방법은 위와 같은 플래그와 함께 interrupt()를 사용하는 것이다.
          }finally{
          *OutpuStream,InputStream : 모든 다른 스트림 클래스들의 수퍼클래스이다. 이 Chapter에서는 이둘 클래스 설명
          public static void println(String msg) throws IOException{
          synchronized(System.out){ //메시지를 터미널에 출력하던 도중에 다른 쓰레드에 의해 String이 출력될수 없도록 동기화처리
          for(int i=0; i<msg.length(); ++i)
          System.out.write(msg.charAt(i) & 0xff); //16비트 유니코드로 구성된 String은 연속한 바이트로 매스킹한후 출력
          public static void main(String[] args) throws IOException {
          for(int i=0; i<args.length;i++){
          println(args[i]); //넘겨받은 문자를 하나씩 넘김
          *InputStream 클래스 : InputStream 클래스는 통신 채널로부터 데이터를 읽어 내는 관문을 의미한다. OutputStream에 의해 통신 채널로 쓰여진 데이터는 해당하는 InputStream에 의해 읽혀진다.
  • VonNeumannAirport/1002 . . . . 61 matches
         문제는 암튼 이해했고 (Input 에 대한 Output 이 머릿속에서 어떻게 해야 할지 연결이 된 상태) 가장 간단하게 테스트할 수 있는 방법에 대해 생각해야 하겠군요.
         Sample Input 을 보니 뒤의 것이 간단해 보이는군요.
         #include <cppunit/TestCase.h>
         #include <cppunit/extensions/HelperMacros.h>
         #include <cppunit/Ui/Text/TestRunner.h>
         int main ()
          int startCity;
          int endCity;
          Configuration (int startCity, int endCity) {
          void movePeople (int startCity, int endCity, int people) {
          int getTraffic () {
          void movePeople (int startCity, int endCity, int people) {
          int getTraffic () {
         여기까진 통과..~ test code 를 Refactoring 해봅니다.
          int dataset [3][3] = {{1,1,1}, {1,1,1}, {1,1,100}};
          int expectedSet[3] = {1,2,102};
          for (int i=0;i<3;i++) {
          int arrivalCitys[] = {1,2};
          int departureCitys[] = {1,2};
          vector <int> arrivalCitys;
  • Gof/Singleton . . . . 51 matches
         == Singleton ==
         === Intent ===
         더 좋은 방법은 클래스 자신으로 하여금 자기자신의 단일 인스턴스를 유지하도록 만드는 것이다. 이 클래스는 인스턴스가 생성될 때 요청을 가로챔으로서 단일 인스턴스로 만들어지는 것은 보증한다. 또한, 인스턴스에 접근하는 방법도 제공한다. 이것이 바로 SingletonPattern이다.
         SingletonPattern은 다음과 같은 경우에 사용한다.
         http://zeropage.org/~reset/zb/data/singl014.gif
          * Singleton
          * Instance operation (클래스의 메소드)을 정의한다. Instance 는 클라이언트에게 해당 Singleton의 유일한 인스턴스를 접근할 수 있도록 해준다.
          * Singleton 자신의 유일한 인스턴스를 생성하는 책임을 가진다.
          * 클라이언트는 오직 Singleton의 Instance operation으로만 Singleton 인스턴스에 접근할 수 있다.
         SingletonPattern은 여러가지 장점을 가진다.
          1. 클래스에 대한 접근이 오직 하나의 인스턴스에게로 제한된다. Singleton 클래스는 자기 자신의 단일 인스턴스를 캡슐화하기 때문에, 클라이언트가 언제, 어떻게 접근하던지 그 접근이 엄격하게 제어된다.
          2. namespace를 줄인다. SingletonPattern은 global variable을 줄임으로서 global variable로 인한 namespace의 낭비를 줄인다.
          3. 명령어와 표현을 확장시킬 수 있다. Singleton class는 subclass될 수 있고, 이 확장된 클래스의 인스턴스를 가지고 어플리케이션을 설정하는 것은 쉽다. run-time중에 필요한 경우에도 가능하다.
          4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
          5. class operation 보다 더 유연하다. 패키지에서 Singleton의 기능을 수행하기위한 또다른 방법은 class operation들을 사용하는 것이다. (C++에서의 static 함수나 Smalltalk에서의 class method 등등) 하지만, 이러한 언어적인 테크닉들은 여러개의 인스턴스를 허용하는 디자인으로 바꾸기 힘들어진다. 게다가 C++에서의 static method는 virtual이 될 수 없으므로, subclass들이 override 할 수 없다.
         SingletonPattern 을 사용할 때 고려해야 할 사항들이 있다.
         1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
         다음의 예를 보라. C++ 프로그래머는 Singleton class의 Instance operation을 static member function으로 정의한다. Singleton 또한 static member 변수인 _instance를 정의한다. _instance는 Singleton의 유일한 인스턴스를 가리키는 포인터이다.
         Singleton class는 다음과 같이 선언된다.
         class Singleton {
  • NSIS/예제3 . . . . 43 matches
         [http://zeropage.org/~reset/zb/download.php?id=KDP_board_image&page=1&page_num=20&category=&sn=&ss=on&sc=on&keyword=&prev_no=&select_arrange=headnum&desc=&no=50&filenum=1 만들어진Installer] - 실행가능.
         ; define 상수.. 버전 표시용.
         !define VER_MAJOR 1
         !define VER_MINOR 0
         Caption "Tetris Install"
         BrandingText "ZeroPage Install v1.0"
         ; Installer 의 아이콘. 반드시 32 * 32 * 16 color 이여야 한다.
         WindowIcon on
         ; Install 버튼에 대한 text
         InstallButtonText "설치"
         InstallDir $PROGRAMFILES\zp_tetris
         ComponentText "Testing ver ${VER_MAJOR}.${VER_MINOR} 설치 합니다. 해당 컴포넌트를 골라주세요~"
         ; Install 관련 Type 의 셋팅
         InstType "Normal Install"
         InstType "Full Install"
         ;InstType /NOCUSTOM
         ;InstType /COMPONENTSONLYONCUSTOM
         AutoCloseWindow false
         ShowInstDetails show
         ShowUninstDetails show
  • RandomWalk/임인택 . . . . 43 matches
         #include <iostream>
         #include <ctime>
         #include <cstdlib>
         using namespace std;
         int direction_x[]={-1,0,1,1,1,0,-1,-1};
         int direction_y[]={1,1,1,0,-1,-1,-1,0};
         int board[40][20]; // maximum size of the board is : 40x20
         int sizeX, sizeY, xPos, yPos, NumOfBlock, loop=0;
         const int DIRECTION = 8;
         void input();
         void init_board();
         int main()
          init_board();
          input();
         void init_board()
          for(int i=0; i<sizeX; i++)
          for(int j=0; j<sizeY; j++)
          int k;
          // initial point
          // prevent the roach moves outside of the board
  • NSIS/Reference . . . . 42 matches
         == Installer attributes ==
         || || || 1 - Installation Options ||
         || || || 2 - Installation Directory ||
         || || || 3 - Installing Files ||
         || BrandingText || "ZeroPage Installer System v1.0" || 인스톨러 하단부에 보여지는 텍스트 ||
         || Icon || "setup.ico" || Installer 의 아이콘. 반드시 32*32*16 color 이여야 한다. ||
         || WindowIcon || on | off || Icon 을 표시할 것인지 말것인지 결정 ||
         || InstallButtonText || "설치 || Install 버튼에 대한 text 의 설정 ||
         === Install Directory ===
         || InstallDir || $PROGRAMFILES\example || 기본 설치 디렉토리 ||
         || InstallDirRegKey || . || . ||
         || InstType || "Full Install" || Install 관련 component type 에 대한 정의. 순서대로 1,2,3,4...8 까지의 번호들이 매겨지며, 이는 추후 SectionIn 에서 해당 component 에 대한 포함관계시에 적용된다. ||
         || AllowRootDirInstall || false || 루트디렉토리에 설치할 수 있도록 허용할것인지에 대한 여부 ||
         === Install Page - 실질적인 Install 화면을 표시하는 페이지에 쓰이는 속성들 ===
         || InstallColors || FFFF00 000000 || foregroundcolor backgroundcolor. 또는 /windows 옵션을 이용가능 ||
         || InstProgressFlags || smooth colored|| smooth, colored. colored 를 설정시는 InstallColors 의 색으로 적용 ||
         || AutoCloseWindow || false || 인스톨 완료시 자동으로 인스톨 윈도우를 닫을것인지에 대한 여부 ||
         || ShowInstDetails || show || hide | show | nevershow . install 되는 화면을 보여줄 것인지에 대한 여부 ||
         === Uninstall ===
         Uninstall 화면에 대한 설정들.
  • Android/WallpaperChanger . . . . 39 matches
          * Android의 기본 어플로 장착되어있는 Gallery 어플로 Intent넘긴후 리스트 다시 받아오기.
         == Android의 기본 어플로 장착되어있는 Gallery 어플로 Intent넘긴후 리스트 다시 받아오기 ==
          * http://stackoverflow.com/questions/2169649/open-an-image-in-androids-built-in-gallery-app-programmatically
         import android.content.Intent;
          private static final int SELECT_PICTURE = 1;
          private String selectedImagePath;
          /** Called when the activity is first created. */
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          //Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
          Intent i = new Intent();
          i.setAction(Intent.ACTION_GET_CONTENT);
          startActivityForResult(Intent.createChooser(i, "Select Picture"), SELECT_PICTURE);
          public void onActivityResult(int requestCode, int resultCode, Intent data) {
          public String getPath(Uri uri) {
          String[] projection = { MediaStore.Images.Media.DATA };
          int column_index = cursor
          .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
          return cursor.getString(column_index);
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현 . . . . 39 matches
          * HashMap을 사용하여 단어와 빈도수를 저장함. 저장할 빈도수가 2개라 int형 2개를 저장하는 Int2 클래스를 만듦.
          * train 데이터를 읽어들여서 일단 문자열과 빈도수를 csv 파일로 저장. 이를 Analyze 클래스에서 csv 파일을 읽어들여 test 데이터를 판별.
         package org.zeropage.devils.machine;
         import java.io.FileInputStream;
         import java.io.InputStreamReader;
         import java.io.UnsupportedEncodingException;
          public FileData(String filename) throws FileNotFoundException, UnsupportedEncodingException {
          scan = new Scanner(new InputStreamReader(new FileInputStream(filename),"UTF-8"));
          public String next() { return scan.next(); }
          public String nextLine() { return scan.nextLine(); }
         === Train File Analysis ===
         package org.zeropage.devils.machine;
         import java.io.PrintWriter;
         import java.io.UnsupportedEncodingException;
         import java.util.StringTokenizer;
         public class Main {
          public static HashMap<String, Int2> words = new HashMap<String, Int2>();
          public static void main(String[] args) {
          FileData politics = new FileData("train/politics/index.politics.db");
          FileData economy = new FileData("train/economy/index.economy.db");
  • EightQueenProblem/강석천 . . . . 35 matches
          def testPrintBoard (self):
          self.assertEquals (self.bd.PrintBoard (), '''00000000\n01000000\n00100000\n00000000\n00000000\n00000000\n00000000\n00000001\n''')
          def testFindQueenInSameVertical (self):
          self.assertEquals (self.bd.FindQueenInSameVertical (2), 1)
          self.assertEquals (self.bd.FindQueenInSameVertical (3), 0)
          def testFindQueenInSameHorizonal (self):
          self.assertEquals (self.bd.FindQueenInSameHorizonal (2), 1)
          self.assertEquals (self.bd.FindQueenInSameHorizonal (3), 0)
          def testFindQueenInSameCrossLeftTopToRightBottom (self):
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (3,3), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (1,1), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (4,1), 0)
          def testFindQueenInSameCrossLeftBottomToRightTop (self):
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (3,3), 0)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (3,1), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (1,3), 1)
          def testGetFirstCornerInCrossLeftTopToRightBottom (self):
          self.assertEquals (self.bd.GetFirstCornerInCrossLeftTopToRightBottom (3,3), (0,0))
          self.assertEquals (self.bd.GetFirstCornerInCrossLeftTopToRightBottom (4,3), (1,0))
          self.assertEquals (self.bd.GetFirstCornerInCrossLeftTopToRightBottom (1,5), (0,4))
  • DirectDraw/Example . . . . 32 matches
         // SimpleDX.cpp : Defines the entry point for the application.
         #include "stdafx.h"
         #include "resource.h"
         #include <ddraw.h>
         #include <ddutil.h>
         #include <dxutil.h>
         #define MAX_LOADSTRING 100
         int x = 100;
         int y = 100;
         HINSTANCE hInst; // current instance
         TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
         TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
         // Foward declarations of functions included in this code module:
         ATOM MyRegisterClass(HINSTANCE hInstance);
         BOOL InitInstance(HINSTANCE, int);
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
         int APIENTRY WinMain(HINSTANCE hInstance,
          HINSTANCE hPrevInstance,
          LPSTR lpCmdLine,
  • 1002/Journal . . . . 31 matches
         추후 ["Refactoring"] & 다른 위키 페이지에 해당 지식 분양용.
          * 사람수대로 retrofitting 인쇄하기 -> 6부 인쇄하기 - O
          * Retrofitting UT 발표준비
          * dot plotting
          * index card 내용 정리하기
          ~ 11 : 20 retrofitting 인쇄
          ~ 11 : 30 internet 돌아다니기
          ~ 1 : 06 retrofitting 공부 & 이해
          ~ 2 : 16 (지하철) using singleton wisely 읽고 이해
          ~ 2 : 42 (지하철) retrofitting 읽기 & 이해
          * 규영이형이 Working Effectivly With Legacy Code 발표할때를 보면서 그 격에 있어 현격함을 느낌.
         책을 8권 정도 샀다. Input 대비 Output 비율이 이전보다 조금이나마 높았으면 한다.
         읽기 준비 전 Seminar:ThePsychologyOfComputerProgramming 이 어려울 것이라는 생각이 먼저 들어서, 일단 영어에 익숙해져야겠다는 생각이 들어서 Alice in wonderland 의 chapter 3,4 를 들었다. 단어들이 하나하나 들리는 정도. 아직 전체의 문장이 머릿속으로 만들어지진 않는 것 같다. 단어 단위 받아쓰기는 가능하지만, 문장단위 받아쓰기는 힘든중.
         도서관에서 이전에 절반정도 읽은 적이 있는 Learning, Creating, and Using Knowledge 의 일부를 읽어보고, NoSmok:HowToReadaBook 원서를 찾아보았다. 대강 읽어봤는데, 전에 한글용어로는 약간 어색하게 느껴졌던 용어들이 머릿속에 제대로 들어왔다. (또는, 내가 영어로 된 책을 읽을때엔 전공책의 그 어투를 떠올려서일런지도 모르겠다. 즉, 영어로 된 책은 약간 더 무겁게 읽는다고 할까. 그림이 그려져 있는 책 (ex : NoSmok:AreYourLightsOn, 캘빈 & 홉스) 는 예외)
         일단, 좀 쉬운 책들에 대해 어느정도 Input 이 좀 들어왔으니 괜찮겠지 하고 책을 읽었다.
          책을 읽으면서 '해석이 안되는 문장' 을 그냥 넘어가버렸다. 즉, NoSmok:HowToReadaBook 에서의 첫번째 단계를 아직 제대로 못하고 있는 것이다. 그러한 상황에서는 Analyicial Reading 을 할 수가 없다.
          * 그렇다면, 어떻게 NoSmok:HowToReadaBook 이나 'Learning, Creating, and Using Knowledge' 은 읽기 쉬웠을까?
          * 사전지식이 이미 있었기 때문이라고 판단한다. NoSmok:HowToReadaBook 는 한글 서적을 이미 읽었었고, 'Learning, Creating, and Using Knowledge' 의 경우 Concept Map 에 대한 이해가 있었다. PowerReading 의 경우 원래 표현 자체가 쉽다.
          * 현재 내 영어수준을 보건데, 컴퓨터 관련 서적 이외에 쉽고 일상적인 책들에 대한 Input 이 확실히 부족하다. 영어로 된 책들에 대해서는 좀 더 쉬운 책들을 Elementary Reading 단계부터 해봐야겠다.
          * Seminar:ReadershipTraining
  • EightQueenProblem/da_answer . . . . 30 matches
         interface
          Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
          X: integer;
          Y: integer;
          function getNextQueenPos(index, X, Y:integer):boolean;
          function checkRule(X,Y:integer):boolean;
         begin
          i, j: integer;
         begin
          begin
          begin
          showMessage(inttostr(i));
          if getNextQueenPos(0, QueenPosArr[i].X, QueenPosArr[i].Y) then
          begin
          begin
          showMessage(inttostr(QueenPosArr[j].X)+'-'+inttostr(QueenPosArr[j].Y));
          begin
         function TForm1.getNextQueenPos(index, X, Y:integer):boolean;
          i: integer;
          nowIndex: integer;
  • MoniWikiPo . . . . 30 matches
         # Copyright (C) 2003-2006 Free Software Foundation, Inc.
         "Content-Type: text/plain; charset=UTF-8\n"
         "Content-Transfer-Encoding: 8bit\n"
         #: ../plugin/Attachment.php:41 ../plugin/Attachment.php:121
         #: ../plugin/Attachment.php:124
         msgid "Upload new Attachment \"%s\" on the \"%s\""
         #: ../plugin/BabelFish.php:16
         #: ../plugin/BabelFish.php:29
         #: ../plugin/Blog.php:86 ../plugin/blog2.php:87
         #: ../plugin/Blog.php:110 ../plugin/blog2.php:111
         #: ../plugin/Blog.php:115 ../plugin/blog2.php:116
         #: ../plugin/Blog.php:155 ../plugin/blog2.php:156
         #: ../plugin/Blog.php:163 ../plugin/Comment.php:135 ../plugin/blog2.php:164
         #: ../plugin/Blog.php:180 ../plugin/blog2.php:181
         #: ../plugin/Blog.php:183 ../plugin/blog2.php:184
         #: ../plugin/Blog.php:220 ../plugin/blog2.php:221
         #: ../plugin/Blog.php:222 ../plugin/blog2.php:223
         #: ../plugin/Blog.php:236 ../plugin/Blog.php:292 ../plugin/Comment.php:50
         #: ../plugin/blog2.php:237 ../plugin/blog2.php:293
         #: ../plugin/Blog.php:240 ../plugin/Blog.php:293 ../plugin/blog2.php:241
  • PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 30 matches
         # -*- coding: utf-8 -*-
          for i in range(8):
          chunkInfo = self.png.nextChunk()
          self.assertEqual(13, chunkInfo[0]) # 0 = chunkLen
          chunkInfo = self.png.nextChunk()
          imageWidth = ord(chunkInfo[2][0]) * (256**3)
          imageWidth += ord(chunkInfo[2][1]) * (256**2)
          imageWidth += ord(chunkInfo[2][2]) * (256**1)
          imageWidth += ord(chunkInfo[2][3])
          imageHeight = ord(chunkInfo[2][4]) * (256**3)
          imageHeight += ord(chunkInfo[2][5]) * (256**2)
          imageHeight += ord(chunkInfo[2][6]) * (256**1)
          imageHeight += ord(chunkInfo[2][7])
          bitDepth = ord(chunkInfo[2][8])
          self.assertEqual(True, bitDepth in [1,2,4,8,16])
          colorType = ord(chunkInfo[2][9])
          self.assertEqual(True, colorType in [0,2,3,4,6])
          compressionMethod = ord(chunkInfo[2][10])
          filterMethod = ord(chunkInfo[2][11])
          # InterlaceMethod
  • 영호의바이러스공부페이지 . . . . 30 matches
         Introduction -
         This is a down and dirty zine on wich gives examples on writing viruses
         and this magazines contains code that can be compiled to viruses.
         get erased so you have a psycological problem with viruses, erase these
         files. This aint for you.
          INDEX
         001...........................Virus Spotlight, The Tiny virus
          Co-Editor, Theory Consultant - Bionic Slasher
          The first virus I would like to spotlight is the Tiny virus, lets see
          Name: Tiny
          Aliases: 163 COM Virus, Tiny 163 Virus, Kennedy-163
          Origin: Denmark
          Type Code: PNCK - Parasitic Non-Resident .COM Infector
          Removal Instructions: Scan/D, F-Prot 1.12+, or Delete infected
          The 163 COM Virus, or Tiny Virus, was isolated by Fridrik Skulason
          of Iceland in June 1990. This virus is a non-resident generic
          .COM file infector, and it will infect COMMAND.COM.
          The first time a file infected with the 163 COM Virus is executed,
          the virus will attempt to infect the first .COM file in the
          be COMMAND.COM. After the first .COM file is infected,each time
  • 중위수구하기/나휘동 . . . . 30 matches
         = Using Swap ver.1 =
         #!/usr/bin/python
          maxIndex = aList.index(max(aList[0:k]))
          minIndex = aList.index(min(aList[k+1:n+1]))
          if aList[maxIndex] <= aList[k] <= aList[minIndex]:
          elif aList[maxIndex] <= aList[minIndex]:
          if aList[maxIndex] > aList[k]:
          swapList(aList, k, maxIndex)
          elif aList[minIndex] < aList[k]:
          swapList(aList, k, minIndex)
          else:# aList[maxIndex] > aList[minIndex]:
          swapList(aList, maxIndex, minIndex)
         def swapList(aList, one, another):
          aList[one], aList[another] = aList[another], aList[one]
          for i in range(n):
          for i in range(0,k+1):
         if __name__ == '__main__':
          for i in range(1, int(sys.argv[1])):
          print i, metric(i), i**2, i*math.log(i)
          test= range(int(sys.argv[1]))
  • EightQueenProblem/밥벌레 . . . . 29 matches
         interface
          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
          procedure FormPaint(Sender: TObject);
          i, j: Integer;
         begin
         function CountRow(row: Integer): Integer;
          i: Integer;
         begin
          if Table[i, row] then
          Inc(Result);
         procedure SetQueens(n: Integer); // 퀸 배치하기. 이 소스의 핵심함수. n은 현재 사용안한다. 처음엔 RandomSeed로 쓰려했음..-_-;
          i, row: Integer;
         begin
          begin
          if CountRow(row) > 1 then
          function CountColumn(column: Integer): Integer;
          i: Integer;
          begin
          if Table[column, i] then
          Inc(Result);
  • IntelliJ . . . . 29 matches
          * http://intellij.com, http://intellij.net
          * http://intellij.org - IntelliJ Community Wiki
          * http://www.jguru.com/forums/home.jsp?topic=IntellijIDEA
          * http://www.intellij.org/twiki/bin/view/Main/IdeaToAntPlugin - IntelliJ Project 화일로 Ant build 화일을 작성해주는 플러그인.
         Refactoring 기능과 깔끔한 UI, Inspection 기능 등이 돋보인다. 2002년 Jolt Award 수상.
         http://www.intellij.net/eap - [IntelliJ] Early Access Program. Aurora project 가 진행중. JUnit Runner 추가.(이쁘다!) CVS 지원. AspectJ 지원. Swing GUI Designer 지원 (IntelliJ에서는 UI Form 기능). Plugin Manager 기능 추가.
         Upload:intellijpluginman.gif
         Upload:intellijuiform.gif
         Upload:intellijcvsman.gif
         Wiki:WhyIntellijIdeaIsCool , Wiki:ImprovementsNeededForIntellijIdea
         === Analyze - Find Duplicates ===
         === Intelli J Idea 의 Inspection ===
         개인적으로 IntelliJ 는 정말 TestDrivenDevelopment 와 Simplicity 를 위한 에디터라고 생각하는데, 이유는 리팩토링 기능이나 화면상 UI (쓰이지 않는 필드 등에 대해선 회색으로 표시됨), 그리고 Inspection 기능때문이다.
         Inspection 을 이용하면, 현재 실제로 접근하지 않는 메소드들, private 으로 둘 수 있는 메소드들, static 으로 둘 수 있는 필드 등을 체크하고, 해당 메소드 등을 주석처리하거나 영구삭제, 또는 접근권한을 private 으로 변환하는 등 여러가지 대처를 할 수 있다.
         그리고 Programming By Intention 을 툴 차원에서 철학으로 지원하는 IDE 라는 점이 가장 마음에 든다. IntelliJ 로 프로그래밍을 할때는 툴과 대화를 하며 프로그래밍한다는 느낌이 든다고 할까. --[1002]
         === Intelli J Idea 에서 CVS 연동 ===
         Intelli J 에서는 외부 cvs client 를 이용한다. 고로, wincvs 등을 깔고 난뒤 도스 프롬프트용 cvs 를 연결해줘야 한다. (CVS - Project 연동부분에 대해서는 ["IntelliJ"] 쪽이 빨리 버전업이 되었으면 한다는.. ["Eclipse"]의 CVS 연동기능을 보면 부러운지라~)
          0. CVS 셋팅 : File - Project Properties - CVS 텝에서 Enable CVS Integration 체크
          3. CVS 이용 - 3번의 과정을 하고 나면, IntelliJ 의 Tools 에 CVS 관련 메뉴들이 생길것이고, CVS Panel 이 열릴 것이다.
          4. Checkout - 이는 CVSROOT의 modules 에 등록된 project 들만 가능하다. CVS 관리자는 CVSROOT 의 modules 화일에 해당 프로젝트 디렉토리를 추가해준다.([http://cvsbook.red-bean.com/cvsbook.html#The_modules_File module file]) 그러면 IntelliJ 에 있는 CVS의 Checkout 에서 module 을 선택할 수 있다. Checkout 한다.
  • AseParserByJhs . . . . 28 matches
         //#define OBJECT_BEGIN "*NODE_TM"
         #define OBJECT_BEGIN "*GEOMOBJECT"
         #define OBJECT_NAME "*NODE_NAME"
         #define OBJECT_POS "*TM_POS"
         #define NUM_VERTEX "*MESH_NUMVERTEX"
         #define NUM_FACES "*MESH_NUMFACES"
         #define NUM_TVERTEX "*MESH_NUMTVERTEX"
         #define NUM_TFACES "*MESH_NUMTVFACES"
         #define NUM_TEXTURE "*MATERIAL_COUNT"
         #define VERTEX_LIST "*MESH_VERTEX_LIST"
         #define VERTEX "*MESH_VERTEX"
         #define FACE_LIST "*MESH_FACE_LIST"
         #define FACE "*MESH_FACE"
         #define NORMALS "*MESH_NORMALS"
         #define FACE_NORMAL "*MESH_FACENORMAL"
         #define NVERTEX "*MESH_VERTEXNORMAL"
         #define TVERTEX "*MESH_TVERT"
         #define TFACE "*MESH_TFACE"
         #define TEXTURE "*BITMAP"
         #define TEXTURE_ID "*MATERIAL_REF"
  • HowManyPiecesOfLand?/문보창 . . . . 28 matches
         === BigInteger.h ===
         // Big Integer Class - C++
         #include <iostream>
         using namespace std;
         #include <cstring>
         #define MAXDIGITS 100
         #define PLUS 1
         #define MINUS -1
         #define MAX(a,b) (((a) > (b)) ? (a) : (b))
         class BigInteger
          int signbit;
          int lastdigit;
          BigInteger(int n)
          int i;
          signbit = (n < 0) ? MINUS : PLUS;
          BigInteger()
          int i;
          void print()
          if (signbit == MINUS) cout << "-";
          for (int i = lastdigit; i >= 0; i--)
  • Refactoring/BadSmellsInCode . . . . 28 matches
         Refactoring이 동작하는 매커니즘을 아는 것 만큼 중요한 것은, 언제 Refactoring을 적용할까 하는 것이다.
         여기서 딜레마가 온다. 어떻게 인스턴스 변수를 삭제하거나 클래스 계증구조를 만드는가를 표현하는 것은 쉽다. 그건 사소한 문제들이다. 하지만 언제 이러한 것들을 해야 할 것인지 표현하는 것은 쉽지 않다. 나는 (여기서의 I는 Martin Fowler) 프로그래밍 미학이라는 모호한 표현으로 얼버무리지 않고 좀 더 확실한 것을 원했다.
         내가 이 문제로 Kent Beck 을 방문했을 때 그는 "언제" 를 설명하기 위해서 "Smell" 이라는 표현을 사용했다. 우리는 많은 코드들을 보았고, 그것들을 보면서 Refactoring이 적용가능한 어떤 구조를 발견했다.
         여기에서 우리는 Refactoring이 적용가능한 아주 정확한 척도를 제공하려고는 하지 않을 것이다. 경험상, 어떠한 측정도구들도 숙련된 인간의 직관의 경쟁상대가 될 수는 없었다. 우리가 하려는 것은 Refactoring에 의해 해결될 수 있는 문제들이 있는 몇몇 부분을 지적하려는 것이다.
         어떠한 Refactoring을 해야 할 지 확신할 수 없을때 이 부분을 읽어라. 정확하게 똑같은 Smell을 발견할 순 없더라도 Refactoring에 대한 올바른 방향을 가리켜 줄 지침이 될 것이다.
          * ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
          * AWT -> Swing Component로 바꿀때 - DuplicateObservedData
         ExtractClass, ExtractSubclass, ExtraceInterface, ReplaceDataValueWithObject
          * When you can get the data in one parameter by making a request of an object you already know about - ReplaceParameterWithMethod
          * to take a bunch of data gleaned from an object and replace it with the object itself - PreserveWholeObject
          * logic을 가지지 않는 여러개의 data item을 가지는 경우 - IntroduceParameterObject
         ReplaceParameterWithMethod, IntroduceParameterObject, PreserveWholeObject
          * 모든 행위들의 묶음을 가지기 위해 - InlineClass
          * Divergent Change - one class that suffers many kinds of changes
         MoveMethod, MoveField, InlineClass
          * ExtractClass, IntroduceParameterObject or PreserveWholeObject
         ExtractClass, IntroduceParameterObject, PreserveWholeObject
         ReplaceValueWithObject, ExtraceClass, IntroduceParameterObject, ReplaceArrayWithObject, ReplaceTypeCodeWithClass, ReplaceTypeCodeWithSubclasses, ["ReplaceTypeCodeWithState/Strategy"]
          * polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
          * 조건 case 에 null 이 있는 경우 - IntroduceNullObject
  • Java/ModeSelectionPerformanceTest . . . . 27 matches
          public void printPerformance(String[] modeExecute) {
          for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
          System.out.println("if - else elapsed time :" + (end - start) + "ms ");
          private void executeIfElse(String[] modeExecute) {
          for (int i = 0; i < modeExecute.length; i++) {
          public void executeWithIfElse(String mode) {
          public void doOne(int i) {
          public void doTwo(int i) {
          public void doThree(int i) {
          public void doFour(int i) {
          public void doFive(int i) {
          public void doDefault(int i) {
         Seminar:WhySwitchStatementsAreBadSmell 에 걸리지 않을까? 근데.. 그에 대한 반론으로 들어오는것이 '이건 mode 분기이므로 앞에서의 Switch-Statement 에서의 예와는 다른 상황 아니냐. 어차피 분기 이후엔 그냥 해당 부분이 실행되고 끝이다.' 라고 말할것이다. 글쌔. 모르겠다.
         한편으로 느껴지는 것으로는, switch 로 분기를 나눌 mode string 과 웹 parameter 와의 중복이 있을 것이라는 점이 보인다. 그리고 하나의 mode 가 늘어날때마다 해당 method 가 늘어나고, mode string 이 늘어나고, if-else 구문이 주욱 길어진다는 점이 있다. 지금은 메소드로 추출을 해놓은 상황이지만, 만일 저 부분이 메소드로 추출이 안되어있다면? 그건 단 한마디 밖에 할말이 없다. (단, 저 논문을 아는 사람에 한해서) GotoStatementConsideredHarmful.
         import java.lang.reflect.InvocationTargetException;
          public void printPerformance(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
          for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
          System.out.println("elapsed time :" + (end - start) + "ms ");
          private void executeReflection(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
          for (int i = 0; i < modeExecute.length; i++) {
  • JollyJumpers/황재선 . . . . 27 matches
         import java.io.InputStreamReader;
          * TODO To change the template for this generated file go to
          * Window - Preferences - Java - Code Style - Code Templates
          int [] nums;
          public int [] inputNumbers() {
          String message = processKeyInput();
          String [] ch = splitMessage(message);
          return toInt(ch);
          private String[] splitMessage(String message) {
          private int[] toInt(String [] ch) {
          int len = ch.length;
          nums = new int[len];
          for(int i = 0; i < len; i++) {
          nums[i] = Integer.parseInt(ch[i]);
          private String processKeyInput() {
          BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
          String message = "";
          message = in.readLine();
          e.printStackTrace();
          public int[] getdifferenceValue() {
  • MobileJavaStudy/SnakeBite/FinalSource . . . . 27 matches
          public void paint(Graphics g) {
          g.fillRect(0, 0, getWidth(), getHeight());
          g.drawImage(splashImage, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
          e.printStackTrace();
          public int x;
          public int y;
          public SnakeCell(int x, int y) {
          public static final int LEFT = 1;
          public static final int RIGHT = 2;
          public static final int UP = 3;
          public static final int DOWN = 4;
          private final int xRange;
          private final int yRange;
          private int headIndex;
          private int direction;
          private boolean growing;
          public Snake(int length, int xRange, int yRange) {
          for(int i = length ; i >= 1 ; i--)
          headIndex = 0;
          growing = false;
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 27 matches
         Describe 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 here
         Train.java
         package org.zeropage.machinelearn;
         class Trainer {
          private Map<String,Integer> sectionWord;
          private int sectionWordNum;
          private int sectionArticleNum;
          private boolean isSkipData(String inputStr) {
          if(inputStr.length() == 1 || inputStr.equals("http") || inputStr.equals("blog") || inputStr.equals("com") ||
          inputStr.equals("naver") || inputStr.equals("empas") || inputStr.equals("daum") || inputStr.equals("yahoo") ||
          inputStr.equals("tistory") || inputStr.equals("co") || inputStr.equals("kr") || inputStr.equals("www") || inputStr.equals("ohmynews") ||
          inputStr.equals("//") || inputStr.equals("블로그")) {
          public Trainer(File f) {
          public void TrainData() {
          this.sectionWord = new HashMap<String,Integer>();
          while(sectionLearn.hasNextLine()) {
          String[] a = sectionLearn.nextLine().split("\\s+");
          for(String wordTmp:a) {
          if(isSkipData(wordTmp)) {continue;} // 1글자Data, 사이트, 블로그, 페이지 주소의 경우 연관성및 신뢰성이 떨어지므로 검색에서 제외
          e.printStackTrace();
  • BusSimulation/상협 . . . . 26 matches
         /* 계산하는 모든 단위는 Meter 와 minute 이다.
         단지 입력을 받을때는 Km 와 Hour, Minute 등으로 받는다.*/
          int m_people; //버스안에 있는 사람의 수
          long m_Minute; //출발후 부터 흘러간 시간
          int m_currentDistance; //버스가 출발한 곳으로부터 몇 Meter 갔는지 거리
          int m_totalSectionLength; //버스가 운행되는 총 구간 km
          void SetMinute(int m) {m_Minute=m;}; //버스의 출발한 후부터 흐른 시간을 지정
          void IncreasePassenger(int n) {m_people+=n;}; //승객수를 증가 시킨다.
          void IncreaseMinute(int t) ; //시간을 증가 시킨다.
          long GetMinute() {return m_Minute;}; //시간(분) 값을 리턴한다.
          int GetDistance() {return m_currentDistance;}; //거리(미터)값을 리턴한다.
          int GetPeopleNumber() {return m_people;}; //사람수를 리턴한다.
          void IncreaseDistance(double n) {m_currentDistance+=n;}; //출발점으로 부터의 거리를 증가시킨다.
          m_Minute=0;
         void Bus::IncreaseMinute(int t) //중요한 부분.. 시간이 증가하는 이벤트는 다른 데이터에 어떠한 영향을 끼치고 또다른
          m_Minute+=t; // 시간이 증가 할것이고
          IncreaseDistance(t*((m_velocity*1000)/60)); //그때 버스의 거리도 증가할 것이다
          double m_MeterPerMinute_Bus; //버스의 속도 m/m
          int m_IncreasePerMinute_People; //버스 정류장에 사람들이 1분당 증가하는 정도
          int m_MinuteOfInterval; //버스 배차 간격
  • HaskellExercises/Wikibook . . . . 26 matches
         rep :: a -> Int -> [a]
         i :: [a] -> Int -> a
         (i) list index = (i) (tail list) (index-1)
         takeInt :: Int -> [Int] -> [Int]
         takeInt 0 xs = []
         takeInt n (x:xs) = x:takeInt (n-1) xs
         dropInt :: Int -> [Int] -> [Int]
         dropInt 0 xs = xs
         dropInt n (x:xs) = dropInt (n-1) xs
         sumInt :: [Int] -> Int
         sumInt [] = 0
         sumInt (x:xs) = x + sumInt xs
         scanSum :: [Int] -> [Int]
         scanSum (i1:i2:ints) = i1:scanSum (i1+i2:ints)
         diffs :: [Int] -> [Int]
         diffs (i1:i2:ints) = sub i2 i1:diffs (i2:ints)
         minimub list = foldr1 min list
         original1 xs = map f xs
         original2 xs = let f x y = read x + y
          in foldr f 1 xs
  • IndexedTree/권영기 . . . . 26 matches
         IndexedTree
         #include<iostream>
         #include<cmath>
         #define max(s, w) ((s>w)?(s):(w))
         #define N 100020
          int level;
          int item;
         struct Indexed_tree{
          int count;
         Indexed_tree it;
         int find(node *current, int sp, int ep, int st, int ed)
          return find(current->left, sp, ep, st, (st+ed)/2);
          return find(current->right, sp, ep, (st+ed)/2 + 1, ed);
          return find(current->left, sp, (st+ed)/2, st, (st+ed)/2) + find(current->right, (st+ed)/2 + 1, ep, (st+ed)/2 + 1, ed);
         void Init_IndexedTree(node *current, int limit, int *count, int *items){
          Init_IndexedTree(current->left, limit, count, items);
          Init_IndexedTree(current->right, limit, count, items);
         void insert_item(node *current, int item, const int address, int st, int end, const int *count, const int *level){
          insert_item(current->left, item, address, st, (st+end)/2, count, level);
          insert_item(current->right, item, address, (st+end)/2 + 1, end, count, level);
  • Counting/황재선 . . . . 25 matches
          * BigInteger 매우 강력하다!
         import java.math.BigInteger;
         public class Counting {
          public String readLine() {
          return new Scanner(System.in).useDelimiter("\n").next().trim();
          public BigInteger count(int n) {
          BigInteger zero = new BigInteger("0");
          BigInteger one = new BigInteger("1");
          BigInteger two = new BigInteger("2");
          BigInteger[] sum = new BigInteger[n + 1];
          for(int input = 2; input <= n; input++) {
          BigInteger numOfEachCounting = zero;
          for(int i = 1; i <= 3 && i <= input; i++) {
          BigInteger first = zero;
          if (i > 1 && input - i == 0) {
          BigInteger second = i == 1 ?
          two.multiply(sum[input - i]) : sum[input - i];
          numOfEachCounting = numOfEachCounting.add(first.add(second));
          sum[input] = numOfEachCounting;
          public void printCount(BigInteger number) {
  • EightQueenProblemDiscussion . . . . 25 matches
         만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
          def testPrintBoard (self):
          self.assertEquals (self.bd.PrintBoard (), '''00000000\n01000000\n00100000\n00000000\n00000000\n00000000\n00000000\n00000001\n''')
          def testFindQueenInSameVertical (self):
          self.assertEquals (self.bd.FindQueenInSameVertical (2), 1)
          self.assertEquals (self.bd.FindQueenInSameVertical (3), 0)
          def testFindQueenInSameHorizonal (self):
          self.assertEquals (self.bd.FindQueenInSameHorizonal (2), 1)
          self.assertEquals (self.bd.FindQueenInSameHorizonal (3), 0)
          def testFindQueenInSameCrossLeftTopToRightBottom (self):
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (3,3), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (1,1), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftTopToRightBottom (4,1), 0)
          def testFindQueenInSameCrossLeftBottomToRightTop (self):
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (3,3), 0)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (3,1), 1)
          self.assertEquals (self.bd.FindQueenInSameCrossLeftBottomToRightTop (1,3), 1)
          def testGetFirstCornerInCrossLeftTopToRightBottom (self):
          self.assertEquals (self.bd.GetFirstCornerInCrossLeftTopToRightBottom (3,3), (0,0))
          self.assertEquals (self.bd.GetFirstCornerInCrossLeftTopToRightBottom (4,3), (1,0))
  • MoreEffectiveC++/Appendix . . . . 25 matches
         == Recommended Reading ==
         So your appetite for information on C++ remains unsated. Fear not, there's more — much more. In the sections that follow, I put forth my recommendations for further reading on C++. It goes without saying that such recommendations are both subjective and selective, but in view of the litigious age in which we live, it's probably a good idea to say it anyway. ¤ MEC++ Rec Reading, P2
         There are hundreds — possibly thousands — of books on C++, and new contenders join the fray with great frequency. I haven't seen all these books, much less read them, but my experience has been that while some books are very good, some of them, well, some of them aren't. ¤ MEC++ Rec Reading, P4
         What follows is the list of books I find myself consulting when I have questions about software development in C++. Other good books are available, I'm sure, but these are the ones I use, the ones I can truly recommend. ¤ MEC++ Rec Reading, P5
         A good place to begin is with the books that describe the language itself. Unless you are crucially dependent on the nuances of the °official standards documents, I suggest you do, too. ¤ MEC++ Rec Reading, P6
          * '''''The Annotated C++ Reference Manual''''', Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, 1990, ISBN 0-201-51459-1. ¤ MEC++ Rec Reading, P7
          * '''''The Design and Evolution of C++''''', Bjarne Stroustrup, Addison-Wesley, 1994, ISBN 0-201-54330-3. ¤ MEC++ Rec Reading, P8
         These books contain not just a description of what's in the language, they also explain the rationale behind the design decisions — something you won't find in the official standard documents. The Annotated C++ Reference Manual is now incomplete (several language features have been added since it was published — see Item 35) and is in some cases out of date, but it is still the best reference for the core parts of the language, including templates and exceptions. The Design and Evolution of C++ covers most of what's missing in The Annotated C++ Reference Manual; the only thing it lacks is a discussion of the Standard Template Library (again, see Item 35). These books are not tutorials, they're references, but you can't truly understand C++ unless you understand the material in these books
         For a more general reference on the language, the standard library, and how to apply it, there is no better place to look than the book by the man responsible for C++ in the first place: ¤ MEC++ Rec Reading, P10
          * '''''The C++ Programming Language (Third Edition)''''', Bjarne Stroustrup, Addison-Wesley, 1997, ISBN 0-201-88954-4. ¤ MEC++ Rec Reading, P11
         Stroustrup has been intimately involved in the language's design, implementation, application, and standardization since its inception, and he probably knows more about it than anybody else does. His descriptions of language features make for dense reading, but that's primarily because they contain so much information. The chapters on the standard C++ library provide a good introduction to this crucial aspect of modern C++. ¤ MEC++ Rec Reading, P12
         If you're ready to move beyond the language itself and are interested in how to apply it effectively, you might consider my other book on the subject: ¤ MEC++ Rec Reading, P13
          * '''''Effective C++''''', Second Edition: 50 Specific Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 1998, ISBN 0-201-92488-9. ¤ MEC++ Rec Reading, P14
         That book is organized similarly to this one, but it covers different (arguably more fundamental) material. ¤ MEC++ Rec Reading, P15
         A book pitched at roughly the same level as my Effective C++ books, but covering different topics, is ¤ MEC++ Rec Reading, P16
          * '''''C++ Strategies and Tactics''''', Robert Murray, Addison-Wesley, 1993, ISBN 0-201-56382-7. ¤ MEC++ Rec Reading, P17
         Murray's book is especially strong on the fundamentals of template design, a topic to which he devotes two chapters. He also includes a chapter on the important topic of migrating from C development to C++ development. Much of my discussion on reference counting (see Item 29) is based on the ideas in C++ Strategies and Tactics.
         If you're the kind of person who likes to learn proper programming technique by reading code, the book for you is ¤ MEC++ Rec Reading, P19
          * '''''C++ Programming Style''''', Tom Cargill, Addison-Wesley, 1992, ISBN 0-201-56365-7. ¤ MEC++ Rec Reading, P20
         Each chapter in this book starts with some C++ software that has been published as an example of how to do something correctly. Cargill then proceeds to dissect — nay, vivisect — each program, identifying likely trouble spots, poor design choices, brittle implementation decisions, and things that are just plain wrong. He then iteratively rewrites each example to eliminate the weaknesses, and by the time he's done, he's produced code that is more robust, more maintainable, more efficient, and more portable, and it still fulfills the original problem specification. Anybody programming in C++ would do well to heed the lessons of this book, but it is especially important for those involved in code inspections. ¤ MEC++ Rec Reading, P21
  • MoreEffectiveC++/Efficiency . . . . 25 matches
         == Item 16:Remember the 80-20 rule. ==
         '''80-20 규칙''' 이란? 프로그램의 80%의 리소스가 20%의 코드에서 쓰여진다.:실행 시간의 80%가 대략 20%의 코드를 소모한다;80%의 메모리는 어떤 20%의 코드에서 쓴다.;80%의 disk 접근은 20%의 코드에서 이루어진다.:80%의 소프트웨어 유지의 노력은(maintenance effort)는 20%의 코드에 쏟아 부어진다.[[BR]]
         80-20 규칙은 수많은 기계에서, 운영체제(Operating System)에서, 그리고 어플리케이션에서 적용된다. 80-20 규칙은 단지 재미있는 표현보다 더 많은 의미가 있다.;그것은 광범위하고, 실질적인 개념이 필요한 시스템의 성능(능률)에 개선 대한 기준점을 제시한다.
         이런 결과들을 막는데 최선책은 당신의 소프트웨어에 가능한한 많은 데이터 들에게 프로파일을 시도하는것이다. 게다가 당신은 각 데이터들이 소프트웨어가 그것의 클라이언트들(혹은 최소한 가장 중요한 클라인트들에게라도)에게 사용방식을 잘 보여주도록 확신할수 있어야만 한다. 잘표현되는 데이터들은 얻기가 용이하다 왜냐하면 프로파일링 중에는 당신이 그들의 데이터를 사용할수 있기때문에 많은 클라이언트들이 좋기 때문이다. (뭔소리야. --;) 당신은 당신의 소프트웨어를 그들과 만나면서 조정(tuning)을 할것이고, 그것이 오직 당신이나 클라이언트들 양쪽에게 좋은 방법이다.
         == Item 17:Consider using lazy evaluation ==
         능률(efficiency)의 관점에서 최고의 계산은 결코 아무것도 수행하지 않는것이다. 말이 좀 이상한가? 생각해 봐라 당신이 어떤 일도 필요없을때 이건 맞는거다. 왜 당신은 당신의 프로그램안에서 가장 처음에 그것을 수행하려 하는가? 그리고 만약 당신이 어떤 일을 수행하기를 원할때 당신은 그 코드의 실행(excuting)을 피할수는 없을까?
          === Reference Counting (참조 세기) ===
          class String { ... }; // 문자열 클래스 (이건 밑의 언급과 같이 표준 스트링 타입과
          String s1 = "Hello";
          String s2 = s1; // String 복사 생성자를 부른다.
         String 복사 생성자의 적용시, s2는 s1에 의하여 초기화 되어서 s1과 s2는 각각 "Hello"를 가지게된다. 그런 복사 생성자는 많은 비용 소모에 관계되어 있는데, 왜냐하면, s1의 값을 s1로 복사하면서 보통 heap 메모리 할당을 위해 new operator(Item 8참고)를 s1의 데이터를 s2로 복사하기 위해 strcpy를 호출하는 과정이 수행되기 때문이다. 이것은 ''''eager evaluation''''(구지 해석하면 '''즉시 연산''' 정도 일것이다.) 개념의 적용이다.:s1의 복사를 수행 하는 것과, s2에 그 데이터를 집어넣는 과정, 이유는 String의 복사 생성자가 호출되기 때문이다. 하지만 여기에는 s2가 쓰여진적이 없이 새로 생성되는 것이기 때문에 실제로 s2에 관해서 저런 일련의 복사와, 이동의 연산의 필요성이 없다.
         이와 같은 구문의 사용으로, String의 convertToUpperCase 함수를 적용하면, s2의 값의 복사본을 만들어야 하고, 수정되기전에 s2에 그걸 s2의 종속되는 데이터로 만들어야 한다. convertToUpperCase 내부에 우리는 lazy 상태가 더이상 지속되지 않도록 하는 코드를 넣어야 한다.:s2가 마음대로 다룰수 있도록 s2의 공유된 값의 사본을 복사해야 한다. 반면에 만약 s2가 결코 수정되지 않을 것이라면, 이러한 s2만의 값을 복사하는 일련의 과정이 필요 없을 것이다. 그리고 s2가 존재하는 만큼 값도 계속 존재해야 한다. 만약 더 좋게, s2가 앞으로 결코 변하지 않는다면, 우리는 결코 그것의 값에 대한 노력을 할필요가 없을 것이다.
          === Distinguishing Read from Writes ( 읽기와 쓰기의 구분 ) ===
         reference-counting 을 토대로한 문자열의 구현 예제를 조금만 생각해 보면 곧 lazy evaluation의 방법중 우리를 돕는 두번째의 것을 만나게 된다. 다음 코드를 생각해 보자
          String s = "Homer's Iliad"; // 다음 문자열이 reference-counting으로
         첫번째 operator[]는 문자열을 읽는 부분이다,하지만 두번째 operator[]는 쓰기를 수행하는 기능을 호출하는 부분이다. 여기에서 '''읽기와 쓰기를 구분'''할수 있어야 한다.(distinguish the read all from the write) 왜냐하면 읽기는 refernce-counting 구현 문자열로서 자원(실행시간 역시) 지불 비용이 낮고, 아마 저렇게 스트링의 쓰기는 새로운 복사본을 만들기 위해서 쓰기에 앞서 문자열 값을 조각내어야 하는 작업이 필요할 것이다.
          === Lazy Fetching ( 늦은 가져오기) ===
          cosnt string& field1() const; // 필드상의 값1
          int field2() const; // 필드상의 값2
          const string& field4() const;
  • BabyStepsSafely . . . . 24 matches
         Introduction
         This article outlines the refactoring of an algorithm that generate the prime numbers up to a user specified maximum. This algorithm is called the Sieve of Eratosthenes. This article demonstrates that the granularity of the changes made to the source code are very small and rely completely on the ability to recompile and test the code after every change no matter how small. The step where the code is tested insures that each step is done safely. It is important to note that the execution of tests do not actually guarantee that the code is correct. The execution of the tests just guarantees that it isn't any worse that it used to db, prior to the change. This is good enough for the purposes of refactoring since we are tring to not damage anything thay may have worked before Therefore for each change in the code we will be recompilling the code and running the tests.
         The code that is to be refactored has existed in the system for awhile. It has undergone a couple of transformations. Initially it returned an array of int variables that are the prime numbers. When the new collection library was introduced in Java2 the interface was changed to return a List of Integer objects. Going forward the method that returns a List is the preferred method, so the method that returns an array has been marked as being deprecated for the last couple of releases. During this release the array member function will be removed. Listing1, "Class GeneratePrimes," contains the source code for both methods.
         The algorithm is quite simple. Given an array of integers starting at 2.Cross out all multiples of 2. Find the next uncrossed integer, and cross out all of its multiples. Repeat until you have passed the square root of the maximum value. This algorithm is implemented in the method generatePrimes() in Listing1. "Class GeneratePrimes,".
         inport java.util.*;
          public static List primes(int maxValue)
          LinkedList result = new LinkedList();
          int [] primes = generatePrimes(maxValue);
          for(int i = 0; i <primes.length; ++i)
          result.add(new Integer(primes[i]));
          /** @param maxValue is the generation limit.
          public static int [] generatePrimes(int maxValue)
          if(maxValue >= 2) // the only valid case
          int s = maxValue+1; // size of array
          int i;
          // initialize array to true.
          int j;
          // how many primes are there?
          int count = 0;
          int [] primes = new int[count];
  • DataCommunicationSummaryProject/Chapter8 . . . . 24 matches
         = The Air Link =
         = Voice Infrastructure =
         == Switching Centers ==
          * moblie voice 네트워크에서 가장 복잡한 구성요소는 MSC(Mobile Switching Center)이다.
         === The Home Location Register(HLR) ===
         === The Visitors' Location Register(VLR) ===
         === The Equipment Identity Register(EIR) ===
         === The Authentication Center(AuC) ===
         === The Messaging Center ===
         == Trunking ==
          * 초기 핸드폰 네트워크에서 MSC가 그물망처럼 되었는데, 이건 곧 제어하기 힘들게 되었다. 그래서 TSCs(Trunking Switching Centers)가 씌여지게 되었다.
          * The Gateway Mobile Switching Center (GMSC)는 스위칭 체계의 최 상위에 있다.
          * 그것은 모바일 네트워크를 전화 네트워크(PSTN)나 다른 roaming 협약을 맵은 운영자와 연결한다.
          * 이것은 가장큰 역할은 핸드폰 시스템 자체의 신호 프로토콜을 보통 전화선에서 전화번호와 같은 정보를 나르는데 사용하는 Signaling System 7(SS7)로 변환하는 것이다.
         = Data Infrastructure =
         == Serving Support ==
          * Serving GPRS Support Node (SGSN)은 data infrastructure 에서 MSC와 비슷한 것이다.
         == The GPRS Backbone ==
          * 인터넷에서 사용되는 IP와 비슷한 GTP(GPRS Tunneling Protocol)라는 프로토콜을 사용한다.
         == The Gateway Node ==
  • EnglishSpeaking/2011년스터디 . . . . 24 matches
          * 참고 도서 : 한 달 만에 끝내는 OPIc (학생편/Intermediate) - 원글리쉬
          1. The Simpsons (심슨네 가족들)의 한 장면을 역할 분담해서 따라하기.
          * [EnglishSpeaking/TheSimpsons]
          * 막연하게 Free Talking을 하면 아직 어색한 우리들, 어떠한 방법으로 이를 극복할 것인가?
          1. Free Talking
          1. Theme Talking
          * There are four members in my family: my father, mother, and a younger brother. Well, actually there are five including our dog. My father was a military officer for twenty years. He recently retired from service and now works in a weaponry company. My mother is a typical housewife. She takes care of me and my brother and keeps our house running well. My brother is attending a university in the U.S.A. He just entered the university as a freshman and is adjusting to the environment. I miss the memory of fighting over things with him. The last member of my family is my dog named Joy. She is a Maltese terrier and my mother named her Joy to bring joy into our family. That's about it for the introduction of my family members.
          1. The Simpsons
          * [EnglishSpeaking/TheSimpsons/S01E01]
          1. Free Talking
          1. Theme Talking
          * [김수경] - 오늘 처음으로 심슨 대사를 따라해봤습니다. 지원언니께서 네명이 같이 연습할만한 장면들을 미리 골라두셨는데 막상 오늘 온 사람이 두명이라 다른 장면을 연습했습니다. 40초도 채 안 되는 짧은 대화인데 참 어렵더라구요. 한 문장씩 듣고 따라하고, 받아쓰기도 하고, 외워서 해보는 등 한 장면을 가지고 여러번 연습한 것은 매우 좋았습니다. ''You tell me that all the time.''이나 ''Let me be honest with you.''가 어려운 문장은 아니지만 막상 말하려면 딱 생각이 안 났을 것 같은데 오늘 이후로는 좀 더 유려하게 말할 수 있을 것 같아요. 앞으로 매주 진행하면 이런 표현들이 늘어나겠죠 ㅋㅋㅋ
          * [송지원] - 혹시나 했지만 역시나 현지 영어 따라하기는 쉽지 않습니다. 짧은 몇 줄 문장을 외워서 따라하기는 어렵지만 많이 하면 실력이 늘 거라는 생각은 들어요. Free Talking은 제가 하고 싶은 말을 나름 자유롭게 구사해서 만족했는데 Theme Talking에서는 한계를 느끼고 한국어를 섞어서 그 점이 좀 아쉬웠어요. 다음 주에는 The Simpsons.. 정말 4명이 함께 하기를 (온 성의를 다해 대본을 준비하는 만큼;ㅁ;)
          1. The Simpsons
          * [EnglishSpeaking/TheSimpsons/S01E02]
          1. Free Talking
          1. Theme Talking
          * [송지원] - 지난 번에 심슨 따라하기 보다 역할을 분담하니 조금 수월해졌다는 느낌이었습니다. 특히, 재미있는 장면을 선정해서 지난 번보다 조금 더 몰입할 수 있었어요. (지난 번엔 마지가 너 고민 있는듯 하다 뭐 이런 내용이었는데 이번엔 온 가족이 Scrabble 게임을 하는 장면 ㅋㅋ) Free Talking을 하면서 느낀 건 맨 처음 영어 스터디를 시작할 때보다 말문이 많이 트였다는 점. 이젠 6피에서 영어 쓰는 것도 그렇게 쪽팔리기만 하지는 않네요.
          * [김수경] - 이번주 영상은 문장이 단어 조금 바꾸면 여기저기 가져다 쓸만한 것이 많아 재미있었어요. 가위바위보로 역할을 분담했는데 ''Along with the ego and the superego, one of three components of the psyche.''라는 문장을 외워보고 싶어서 리사를 선택했습니다. 그런데 리사 분량이 제일 적어서 본의아니게(?) 가장 날로먹었네요 ㅋㅋ
          1. The Simpsons
  • HowManyFibs?/황재선 . . . . 24 matches
         반복적인 계산을 줄이기 위해서, bottom-up 방식으로 수열을 처음부터 계산하였다. 계산된 이전 값을 사용하여 다음 수열을 빠르게 얻을 수 있었다. Dynamic Programming을 처음으로 해보았다 :)
         import java.math.BigInteger;
          public String readLine() {
          return new Scanner(System.in).useDelimiter("\n").next().trim();
          public int howManyFib(BigInteger start, BigInteger end) {
          int howMany = 0;
          BigInteger zero = new BigInteger("0");
          BigInteger one = new BigInteger("1");
          BigInteger two = new BigInteger("2");
          BigInteger[] fibRoom = new BigInteger[4];
          public void printNumOfFibs(int numOfFibs) {
          System.out.println(numOfFibs);
          public static void main(String[] args) {
          String line = fib.readLine();
          if (line.equals("0 0")) {
          BigInteger start = new BigInteger(line.split(" ")[0]);
          BigInteger end = new BigInteger(line.split(" ")[1]);
          int numOfFibs = fib.howManyFib(start, end);
          fib.printNumOfFibs(numOfFibs);
         import java.math.BigInteger;
  • JollyJumpers/강희경 . . . . 24 matches
         #include<iostream>
         using namespace std;
         int* InputList();
         bool Judge(int* aList);
         int GetSumOfGoalGap(int aN);
         bool isCorrectInput;
         void main()
          isCorrectInput = true;
          OutputJudgement(Judge(InputList()));
         int* InputList(){
          bool isInputStart = false;
          int numberOfInputFactor;
          int* inputedList;
          if(!isInputStart){
          if(cin >> numberOfInputFactor){
          inputedList = new int[numberOfInputFactor+1];
          inputedList[0] = numberOfInputFactor;
          isInputStart = true;
          if(numberOfInputFactor < 2){
          isCorrectInput = false;
  • MobileJavaStudy/SnakeBite/Spec3Source . . . . 24 matches
          public int x;
          public int y;
          public SnakeCell(int x, int y) {
          public static final int LEFT = 1;
          public static final int RIGHT = 2;
          public static final int UP = 3;
          public static final int DOWN = 4;
          private final int xRange;
          private final int yRange;
          private int headIndex;
          private int direction;
          public Snake(int length, int xRange, int yRange) {
          for(int i = length ; i >= 1 ; i--)
          headIndex = 0;
          public int length() {
          public SnakeCell getSnakeCell(int index) {
          return (SnakeCell)cellVector.elementAt((headIndex + index) % length());
          public int getDirection() {
          public void setDirection(int direction) {
          int length = length();
  • WeightsAndMeasures/황재선 . . . . 24 matches
          def __init__(self):
          def inputEachData(self, weight, strength):
          def putInStack(self, i):
          def findNextDataIndex(self):
          nextDataIndex = -1
          minWeight = 0
          for each in self.dataList:
          if not self.isInStack(weight) and
          if weight < minWeight:
          minWeight = weight
          nextDataIndex = self.dataList.index(each)
          continue
          minWeight = weight
          nextDataIndex = self.dataList.index(each)
          return nextDataIndex
          def isInStack(self, aWeight):
          for each in self.stack:
          for each in self.stack:
          if self.stack.index(each) < end:
          for each in self.stack:
  • 데블스캠프2006/목요일/winapi . . . . 24 matches
         #include <Windows.h>
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
          PSTR szCmdLine, int iCmdShow)
         = sample2. hello_win =
         #include <Windows.h>
         LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
          PSTR szCmdLine, int iCmdShow)
          static char szAppName[] = "HelloWin" ;
          wndclass.hInstance = hInstance ;
          hwnd = CreateWindow (szAppName, // window class name
          "The Hello Program", // window caption
          WS_OVERLAPPEDWINDOW, // window style
          CW_USEDEFAULT, // initial x position
          CW_USEDEFAULT, // initial y position
          CW_USEDEFAULT, // initial x size
          CW_USEDEFAULT, // initial y size
          NULL, // parent window handle
          NULL, // window menu handle
          hInstance, // program instance handle
  • Celfin's ACM training . . . . 23 matches
         || 1 || 1 || 110101/100 || The 3n+1 Problem || . || [3n 1/Celfin] ||
         || 2 || 1 || 110102/10189 || Minesweeper || . || [minesweeper/Celfin] ||
         || 3 || 1 || 110103/10137 || The Trip || . || [The Trip/Celfin] ||
         || 4 || 1 || 110104/706 || LCD Display || . || [LCD Display/Celfin] ||
         || 5 || 6 || 110603/10198 || Counting || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4010&title=Counting/하기웅&login=processing&id=&redirect=yes Counting/Celfin] ||
         || 6 || 6 || 110606/10254 || The Priest Mathmatician || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4132&title=ThePriestMathematician/하기웅&login=processing&id=&redirect=yes The Priest Mathmatician/Celfin] ||
         || 7 || 6 || 110608/846 || Steps || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4130&title=Steps/하기웅&login=processing&id=&redirect=yes Steps/Celfin] ||
         || 8 || 9 || 110908/10276 || Hanoi Tower Troubles Again || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4078&title=HanoiTowerTroublesAgain!/하기웅&login=processing&id=&redirect=yes Hanoi Tower Troubles Again/Celfin] ||
         || 9 || 6 || 110602/10213 || How Many Pieces Of Land? || 3 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4143&title=HowManyPiecesOfLand?/하기웅&login=processing&id=celfin&redirect=yes How Many Pieces Of Land?/Celfin] ||
         || 10 || 6 || 110601/10183 || How Many Fibs? || 2 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4172&title=HowManyFibs?/하기웅&login=processing&id=celfin&redirect=yes How Many Fibs?/Celfin] ||
         || 11 || 10 || 111007/10249 || The Grand Dinner || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4188&title=TheGrandDinner/하기웅&login=processing&id=celfin&redirect=yes The Grand Dinner/Celfin] ||
         || 12 || 12 || 111201/10161 || Ant on a Chessboard || 40 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4209&title=AntOnAChessboard/하기웅&login=processing&id=&redirect=yes Ant on a Chessboard/Celfin] ||
         || 13 || 12 || 111204/10182 || Bee Maja || 30 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4235&title=BeeMaja/하기웅&login=processing&id=&redirect=yes Bee Maja/Celfin] ||
         || 14 || 12 || 111207/10233 || Dermuba Triangle || 3 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4238&title=DermubaTriangle/하기웅&login=processing&id=&redirect=yes Dermuba Triangle/Celfin] ||
         || 15 || 11 || 111105/10003 || Cutting Sticks || 3 days || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4198&title=CuttingSticks/하기웅&login=processing&id=&redirect=yes CuttingSticks/Celfin] ||
         || 16 || 13 || 111303/10195 || The Knights of the Round Table || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4263&title=TheKnightsOfTheRoundTable/하기웅&login=processing&id=&redirect=yes TheKnightsOfTheRoundTable/Celfin] ||
         || 17 || 13 || 111306/10215 || The Largest/Smallest Box || 40 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4264&title=TheLagestSmallestBox/하기웅&login=processing&id=&redirect=yes TheLargestSmallestBox/Celfin] ||
         || 18 || 13 || 111307/10209 || Is This Integration? || 2 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4265&title=IsThisIntegration?/하기웅&login=processing&id=&redirect=yes IsThisIntegration/Celfin] ||
         || 19 || 1 || 110106/10033 || Interpreter || much || [Interpreter/Celfin] ||
         || 20 || 1 || 110107/10196 || Check the Check || 4 hours || [CheckTheCheck/Celfin] ||
  • DoubleDispatch . . . . 23 matches
         Integer라는 클래스와 Float라는 클래스가 있다. 두 객체 간의 덧셈을 구현하고 싶다. 몇개를 구현해야할까? 4개다. 즉, Integer + Integer, Float + Float, Integer + Float, Float + Integer이렇게 말이다. 이를 해결하기 위한 절차적 방법은 모든 상황을 거대한 case 구문에 넣는 것이다. 이것은 한군데에다가 로직을 다 넣을 수 있다는 장점이 있음에도 불구하고, 유지보수가 어렵다.
         argument에 메세지를 보내라. selector에다가 receiver의 클래스 네임을 덧붙인다. receiver를 argument로 넘긴다. 이 패턴을 사용한 후의 Integer, Float 코드는 다음과 같다.
         Integer Integer::operator+(const Number& aNumber)
          return aNumber.addInteger(this);
         Integer Integer::addInteger(const Integer& anInteger)
          return Integer(this + anInteger);
         Float Integer::addFloat(const Float& aFloat)
          return asFloat().addFloat(aFloat); // Integer를 Float로 바꿔준 다음 계산
         Integer Float::addInteger(const Integer& anInteger)
          return addFloat(anInteger.asFloat());
          * http://eewww.eng.ohio-state.edu/~khan/khan/Teaching/EE894U_SP01/PDF/DoubleDispatch.PDF
          * http://www.chimu.com/publications/short/javaDoubleDispatching.html
          * http://no-smok.net/seminar/moin.cgi/DoubleDispatch
  • MobileJavaStudy/SnakeBite/Spec2Source . . . . 23 matches
          public int snakeCellX;
          public int snakeCellY;
          public SnakeCell(int x, int y) {
          public static final int LEFT = 1;
          public static final int RIGHT = 2;
          public static final int UP = 3;
          public static final int DOWN = 4;
          private final int snakeCellXRange;
          private final int snakeCellYRange;
          private int snakeHeadIndex;
          private int snakeDirection;
          public Snake(int length, int xRange, int yRange) {
          for(int i = length ; i >= 1 ; i--)
          snakeHeadIndex = 0;
          public int length() {
          public SnakeCell getSnakeCell(int index) {
          return (SnakeCell)snakeCellVector.elementAt((snakeHeadIndex + index) % length());
          public int getDirection() {
          public void setDirection(int direction) {
          int length = length();
  • NSIS/예제2 . . . . 23 matches
         InstallDir $PROGRAMFILES\Example2
         InstallDirRegKey HKLM SOFTWARE\NSIS_Example2 "Install_Dir"
         ComponentText "This will install the less simple example2 on your computer. Select which optional things you want installed."
         ; The text to prompt the user to enter a directory
         DirText "Choose a directory to install in to:"
          ; Set output path to the installation directory.
          SetOutPath $INSTDIR
          File "C:\winnt\notepad.exe"
          WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
          ; 윈도우를 위한 Uninstall key를 레지스트리에 저장
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
          WriteUninstaller "uninstall.exe"
          CreateShortCut "$SMPROGRAMS\Example2\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
          CreateShortCut "$SMPROGRAMS\Example2\Example2 (notepad).lnk" "$INSTDIR\notepad.exe" "" "$INSTDIR\notepad.exe" 0
         InstallDir $PROGRAMFILES\Example2
         ; The text to prompt the user to enter a directory
         DirText "Choose a directory to install in to:"
          WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
          ; 윈도우를 위한 Uninstall key를 레지스트리에 저장
  • AutomatedJudgeScript . . . . 22 matches
         [http://online-judge.uva.es/p/v101/10188.html 원문보기]
         === Input ===
         === Sample Input ===
         The answer is: 10
         The answer is: 5
         The answer is: 10
         The answer is: 5
         The answer is: 10
         The answer is: 5
         The answer is: 10
         The answer is: 15
         The answer is: 10
         The answer is: 5
         The answer is: 10
         The answer is: 5
         Input Set #1: YES
         Input Set #2: NO
         Input Set #3: NO
         Input Set #0: YES
         Input Set #1: NO
  • DPSCChapter1 . . . . 22 matches
         == Introduction ==
         Welcome to ''The Design Patterns Smalltalk Companion'' , a companion volume to ''Design Patterns Elements of Reusable Object-Oriented Software'' by Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). While the earlier book was not the first publication on design patterns, it has fostered a minor revolution in the software engineering world.Designers are now speaking in the language of design patterns, and we have seen a proliferation of workshops, publications, and World Wide Web sites concerning design patterns. Design patterns are now a dominant theme in object-oriented programming research and development, and a new design patterns community has emerged.
         ''The Design Patterns Smalltalk Companion'' 의 세계에 오신걸 환영합니다. 이 책은 ''Design Patterns Elements of Reusable Object-Oriented Software''(이하 DP) Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). 의 편람(companion, 보기에 편리하도록 간명하게 만든 책) 입니다. 앞서 출간된 책(DP)이 디자인 패턴에 관련한 책에 최초의 책은 아니지만, DP는 소프트웨어 엔지니어링의 세계에 작은 혁명을 일으켰습니다. 이제 디자이너들은 디자인 패턴의 언어로 이야기 하며, 우리는 디자인 패턴과 관련한 수많은 workshop, 출판물, 그리고 웹사이트들이 폭팔적으로 늘어나는걸 보아왔습니다. 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지며, 그에 따라 새로운 디자인 패턴 커뮤니티들이 등장하고 있습니다.(emerge 를 come up or out into view 또는 come to light 정도로 해석하는게 맞지 않을까. ''이제 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지고 있으며, 디자인 패턴 커뮤니티들이 새로이 등장하고 있는 추세입니다.'' 그래도 좀 어색하군. -_-; -- 석천 바꿔봤는데 어때? -상민 -- DeleteMe)gogo..~ 나중에 정리시 현재 부연 붙은 글 삭제하던지, 따로 밑에 빼놓도록 합시다.
         ''Design Patterns'' describes 23 design patterns for applications implemented in an object-oriented programming language. Of course, these 23 patterns do not capture ''all'' the design knowledge an object-oriented designer will ever need. Nonetheless, the patterns from the "Gang of Four"(Gamma et al.) are a well-founded starting point. They are a design-level analog to the base class libraries found in Smalltalk development environments. They do not solve all problems but provide a foundation for learning environments. They do not solve all problems but provide a foundation for learning about design patterns in general and finding specific useful architectures that can be incorporated into the solutions for a wide variety of real-world design problems. They capture an expert level of design knowledge and provide the foundation required for building elegant, maintainable, extensible object-oriented programs.
         In the Smalltalk Companion, we do not add to this "base library" of patterns;rather, we present them for the Smalltalk designer and programmer, at times interpreting and expanding on the patterns where this special perspective demands it. Our goal is not to replace Design Patterns; you should read the Smalltalk Companion with Design Patterns, not instead of it. We have tried not to repeat information that is already well documented by the Gang of Four book. Instead, we refer to it requently;you should too.
         Another)
         Learning an object-oriented language after programming in another paradigm, such as the traditional procedural style, is difficult. Learning to program and compose application in Smalltalk requires a complex set of new skills and new ways of thinking about problems(e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991). Climbing the "Smalltalk Mountain" learning curve is cetainly nontrivial. Once you have reached that plateau where you feel comfortable building simple Smalltalk applications, there is still a significant distance to the expert peak.
         다른 이론적인 테두리안에서 프로그램(''전통적인 절차식 스타일'')을 한 후 객체 지향 언어를 배우는 것은 어렵다. Smalltalk 안에서 복합된 응용 프로그램 하는 것을 배우는 것은 복잡한 새로운 기술과 문제에 대한 새로운 사고 방식을 요구한다.(" e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991") "Smalltalk" 라는 산을 오르는 것은 확실히 사소한 것이 아니다. 일단 당신이 간단한 Smalltalk 응용 프로그램을 만드는 데 자신이 있는 경지에 닿았다고 해도, 아직 전문가의 경지와는 분명한 차이가 있다.
         Smalltalk experts know many things that novices do not, at various abstraction levels and across a wide spectrum of programming and design knowledge and skills:
          * The low-level details of the syntax and semantics of the Smalltalk language
          * What is available in the form of classes, methods, and functionality in the existing base class libraries
          * How to use the specific tools of the Smalltalk interactive development environment to find and reuse existing functionality for new problems, as well as understanding programs from both static and runtime perspective
          * How to define and implement behavior in new classes and where these classes ought to reside in the existing class hierarchy
          * Which classes work well together as frameworks
          * Recurring patterns of object configurations and interactions and the sorts of problems for which these cooperating objects provide (at least partial) solutions
         Smalltalk 전문가들은 여러가지 다양한 추상적 단계와 폭넓은 programming과 design에 대한 지식과 기술면에서 초심자들이 알지 못하는 많은 것을 알고 있다.
         This is by no means an exhaustive list, and even novices understand and use much of the knowledge. But some items, especially the last -- recurring patterns of software design, or design patterns -- are the province of design expert.
         A '''design pattern''' is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. The pattern sometimes describes how methods in a single class or subhierarchy of classes work together; more often, it shows how multiple classes and their instances collaborate. It turns out that particular architectures reappear in different applications and systems to the extent that a generic pattern template emerges, one that experts reapply and customize to new application - and domain-specific problems. Hence, experts know how to apply design patterns to new problems to implement elegant and extensible solutions.
         In general, designers -- in numerous domains, not just software -- apply their experience with past problems and solution to new, similar problems. As Duego and Benson(1996) point out, expert designers apply what is known in cognitive psychology and artificial intelligence as '''case-based reasoning''', remembering past cases and applying what they learned there. This is the sort of reasoning that chess masters, doctors, lawyers, and architects empoly to solve new problems. Now, design patterns allow software designers to learn from and apply the experiences of other designers as well. As in other domains, a literature of proven patterns has emerged. As a result, we can "stand on the shoulders of giants" to get us closer to the expert peak. As John Vlissies (1997) asserts, design patterns "capture expertise and make it accessible to non-experts" (p. 32).
         디자이너들-소프트웨어에만 국한하지 않은 수많은 분야에서-은 그들의 과거의 문제와, 해법에 경험을 비슷한 문제에 적용 시킨다. '''''Duego와 Genson(1996)은 전문 디자이너들이 사례를 기반으로 경험에서 인지한 지혜안에서 과거의 사례를 기억하고 그들이 배운것을 적용시키는 것에 주목한다. (생략 및 의역) ''''' 이것은 체스의 고수, 의사, 변호사 그리고 건축가들이 새로운 문제에 대응하는 추론 방식의 한 방식이다. 현재, 디자인 패턴은 소프트웨어 디자이너들이 배워온것들과 다른 분야의 디자이너(other designer)들의 경험들 모두를 감안한다. 이런 노력들은 결과적으로, "거인의 어깨에 올라서 있는것" 같은 방법으로 우리를 훌륭한 디자인에 이끌수 있다. John Vlissies(1997)은 디자인 패턴은 "전문 지식을 잡고 비전문가들이 그것을 이용하기 쉽게 해주는 것이라고 평한다. (p. 32).
  • EcologicalBinPacking/강희경 . . . . 22 matches
         #include<iostream>
         using namespace std;
         int bottle[9];
         int noMove[6];
         int movedBottle;
         int input();
         int minimumMove();
         void output(int noMove);
         void main()
          output(minimumMove());
         int input()
          int totalBottle = 0;
          for(int i = 0; i < 9; i++)
          cin >> bottle[i];
          cin.get();
         int minimumMove()
          int MAX = 0;
          movedBottle = input();
          int minimum;
          for(int i = 0; i < 6; i++)
  • JollyJumpers/신재동 . . . . 22 matches
         import java.io.InputStreamReader;
          int listSize = aList.size();
          for(int i = 0; i < listSize - 1; i++) {
          public int getGap(Vector aList, int i) {
          int gap = ((Integer)aList.get(i)).intValue() - ((Integer)aList.get(i + 1)).intValue();
          private void inputNumbers(Vector list) {
          BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
          String line = reader.readLine();
          String [] numbersStr = line.split(" ");
          for(int i = 0; i < numbersStr.length; i++) {
          list.add(new Integer(Integer.parseInt(numbersStr[i])));
          e.printStackTrace();
          public static void main(String[] args) {
          jollyJumper.inputNumbers(list);
          System.out.println("Jolly");
          System.out.println("Not jolly");
          vec.add(new Integer(1));
          vec.add(new Integer(1));
          vec.add(new Integer(4));
          vec.add(new Integer(10));
  • MoinMoinFaq . . . . 22 matches
         '''Index'''
         The term ''Wiki'' is a shortened form of Wiki''''''Wiki''''''Web. A Wiki
         is a database of pages that can be collaboritively edited using a web
         === What is a ''MoinMoin''? ===
         A Moin''''''Moin is a wiki provided by the python wiki program Moin''''''Moin.
         [http://www.lineo.com/ Lineo]
         we have put up a wiki on our internal web site with
         ideas, etc. for people to comment on. Some pages just sit there and
         convey information. Other pages are an open invitation for discussion
         In general, a wiki is very much a free-form tool, whose
         value derives from the use to which it is put. For instance, a page in
         a wiki can serve the same purpose as a discussion thread. You could
         Wikis are used internally by the guys who write [http://www.zope.org/ Zope]
         to manage their ideas and projects.
         === What are the major features of a Wiki? ===
          * ability to see the change history for a document
          * ability to add new information or modify existing information
         === How does this compare to other collaboration tools, like Notes? ===
         A Wiki can accomplish certain things very easily, but there are
         some things it cannot do. The biggest missing
  • DevelopmentinWindows/APIExample . . . . 20 matches
         #include <windows.h>
         #include "resource.h"
         HINSTANCE hInst;
         LPCSTR szWindowClass = "API Window Class";
         ATOM MyRegisterClass(HINSTANCE hInstance);
         BOOL InitInstance(HINSTANCE, int);
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
         int APIENTRY WinMain(HINSTANCE hInstance,
          HINSTANCE hPrevInstance,
          LPSTR lpCmdLine,
          int nCmdShow)
          MyRegisterClass(hInstance);
          if (!InitInstance (hInstance, nCmdShow))
         ATOM MyRegisterClass(HINSTANCE hInstance)
          wcex.hInstance = hInstance;
          wcex.lpszClassName = szWindowClass;
         BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
          hInst = hInstance;
          hWnd = CreateWindow(szWindowClass, "API", WS_OVERLAPPEDWINDOW,
  • LinkedList/숙제 . . . . 20 matches
         int a; // 선언
         int b = 10; // 선언&정의
         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
          int num;
          int num;
         #include "ExList.h"
          printf("%d\n",p->num);
         void main()
         List *pList,*pNew,*pIns; // struct _slist *pList, *pNew, *pIns; 구조체3개 선언
          printf("root생성시\n"); // *pList를 root로 한다.
          printf("pNew생성시\n");
          pIns=(List *)malloc(sizeof(List));
          pIns->num=3; // 3번째 struct란 것을 표시.
          pIns->prev=pList; // pIns를 pList와 pNew 사이에 집어 넣는다. (pList <-- pIns)
          pIns->next=pNew; // pList <--> pNew, pIns ---> pNew
          pList->next=pIns; // pList <--> pIns, pIns ---> pNew, pList <--- pNew (pList <--> pList, pList <--- pNew <--- pIns)
          pNew->prev=pIns; // pList <--> pIns, pIns <--> pNew (pList <--> pIns <--> pNew)
          printf("pIns삽입시\n");
  • RSSAndAtomCompared . . . . 20 matches
         feed formats. As of mid-2005, the two
         The purpose of this page is to summarize, as clearly and simply as possible, the differences between the RSS 2.0 and Atom 1.0 syndication languages.
         The RSS 2.0 specification is copyrighted by Harvard University and is frozen. No significant changes can be made and it is intended that future work be done under a different name; Atom is one example of such work.
         The Atom 1.0 specification (in the course of becoming an
         IETF standards track RFC) represents the consensus of the
         [http://www.ietf.org/html.charters/atompub-charter.html Atompub Working Group]
         within the [http://www.ietf.org/ IETF], as reviewed and approved by the IETF community and the
         [http://www.ietf.org/iesg.html Internet Engineering Steering Group]. The specification is structured in such a way that the IETF could conceivably issue further versions or revisions of this specification without breaking existing deployments, although there is no commitment, nor currently expressed interest, in doing so.
         See the Extensibility section below for how each can be extended without changing the specifications themselves.
         === Publishing Protocols ===
         There are two popular protocols widely used with RSS, [http://www.xmlrpc.com/metaWeblogApi MetaWeblog]
         and [http://www.blogger.com/developers/api/ Blogger]. There are frequent
         [http://www.bblfish.net/blog/page7.html#2005/06/20/22-28-18-208 reports] of problems with interoperability and feature shortcomings.
         The Atompub working group is in the late stages of developing the
         [http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/ Atom Publishing Protocol], which is closely integrated with the Atom feed format and is based on the experience with the existing protocols.
         RSS 2.0 requires feed-level title, link, and description. RSS 2.0 does not require that any of the fields of individual items in a feed be present.
         Atom 1.0 requires that both feeds and entries include a title (which may be empty), a unique identifier, and a last-updated timestamp.
         RSS 2.0 may contain either plain text or escaped HTML, with no way to indicate which of the two is provided. Escaped HTML is ugly (for example, the string AT&T would be expressed as “AT&amp;T”) and has been a source of difficulty for implementors. RSS 2.0 cannot contain actual well-formed XML markup, which reduces the re-usability of content.
         Atom has a carefully-designed payload container. Content may be explicitly labeled as any one of:
          * plain text, with no markup (the default)
  • SolarSystem/상협 . . . . 20 matches
         #include <windows.h>
         #include <gl\gl.h>
         #include <gl\glu.h>
         #include <gl\glaux.h>
         #include <stdio.h>
         #include <cmath>
         HINSTANCE hInstance;
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
          // Calculate The Aspect Ratio Of The Window
          glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
         int InitGL(GLvoid)
          glEnable(GL_LIGHTING);
          glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
         void CorrectOfCoordinate(float distance,float x,float y, float z)
          float cosin = x/absolute;
          float sin = y/absolute;
          glTranslatef(-distance*cosin*cosin,-distance*sin*cosin,0.0f);
         int DrawGLScene(GLvoid)
          gluQuadricDrawStyle(obj,GLU_LINE);
          gluCylinder(obj,1.0f,1.0f,0.1,24,24);
  • 데블스캠프2013/셋째날/머신러닝 . . . . 20 matches
         = Machine Learning =
          * 데이터 및 강의자료 [http://zeropage.org/index.php?mid=seminar&document_srl=91554 링크]
         using System;
         using System.Collections.Generic;
         using System.Linq;
         using System.Text;
         using System.Threading.Tasks;
         using System.IO;
          public int[] words;
          public int category;
          const int SIZEBIG = 8165;
          const int SIZESMALL = 20;
          static void Main(string[] args)
          for (int i = 0; i < 11293; i++)
          sampleNews[i].words = new int[SIZEBIG];
          for (int i = 0; i < 7528; i++)
          testNews[i].words = new int[SIZEBIG];
          int count = 0;
          string[] temp1 = new string[SIZEBIG];
          StreamReader reader = new StreamReader(@"C:\ZPDC2013\train_data11293x8165");
  • 영호의해킹공부페이지 . . . . 20 matches
          1. Access to computers-and anything which might teach you something
          about the way the world works-should be unlimited and total.
          Always yield to the Hands-On imperative!
          2. All information should be free.
          4. Hackers should be judged by their hacking, not bogus criteria such
          6. Computers can change (your) life for the better.
          Principles of Buffer Overflow explained by Jus
         This article is an attempt to quickly and simply explain everyone's favourite
         manner of exploiting daemons - The Buffer Overflow.
         The remote buffer overflow is a very commonly found and exploited bug in badly
         coded daemons - by overflowing the stack one can cause the software to execute
         a shell equal to its current UID - thus if the daemon is run as root, like
         many are, a root shell will be spawned, giving full remote access.
         A buffer is a block of computer memory that holds many instances of the same
         data type - an array. Arrays can be static and dynamic, static being allocated
         at load time and dynamic being allocated dynamically at run time. We will be
         looking at dynamic buffers, or stack-based buffers, and overflowing, filling
         up over the top, or breaking their boundaries.
         A stack has the property of a queue of objects being placed one on top of the
         other, and the last object placed on the stack will be the first one to be
  • 작은자바이야기 . . . . 20 matches
          * SpringSource Tool Suite(Eclipse IDE)의 기본 설정과 프로젝트 설정에 필요한 기본적인 정보를 설명했습니다.
          * http://springsource.org/
          * http://springsource.com/
          * abstract, final, static
          * Python 은 PEP에 절대 권한을 가진 귀도가 그냥 의견을 모아서 정한겁니다. 원숙한 언어일수록 스펙 자체가 '원래 그런 것'은 없고, '사람간의 약속'입니다. 이하 참고자료. --NeoCoin
          * http://stackoverflow.com/questions/68282/why-do-you-need-explicitly-have-the-self-argument-into-a-python-method
          * static에는 이런 용법도 있습니다. [StaticInitializer] - [안혁준]
          * [Singleton] 패턴과 lazy initialization의 필요성에 대해 이야기했습니다.
          * Serializable 인터페이스와 ObjectOutput, ObjectInput을 사용한 직렬화, 역직렬화에 대해 공부했습니다.
          * 대표적인 불변객체인 String 클래스가 내부적으로 어떻게 구현되고, 어떻게 불변성을 유지하는 지를 살펴보았습니다.
          * 다양한 String 객체의 활용 과정에서 객체들의 동일성과 동등성을 알아보았습니다.
          * String객체라니..! 자바 스트링은 편하면서도 불편했는데 뭔가 그 이유를 들을 수 있었을 법한 주제네요..-[김태진]
          * interface
          * inner class
          * annonymous inner class
          * 응집도up와 결합도dw (cohesion&coupling)
          * '''S'''RP (Single responsibility principle)
          * '''O'''CP (Open/closed principle)
          * '''L'''SP (Liskov substitution principle)
          * '''I'''SP (Interface segregation principle)
  • ClassifyByAnagram/Passion . . . . 19 matches
         import java.io.ByteArrayInputStream;
         import java.io.FileInputStream;
         import java.io.InputStream;
         import java.io.InputStreamReader;
         import java.io.PrintStream;
          this(new FileInputStream(file));
          InputStream ins;
          * @param in
          public Parser(InputStream in) {
          this.ins = in;
          * @param input
          public Parser(String input) {
          ByteArrayInputStream byteInputStream = new ByteArrayInputStream( input.getBytes() );
          this.ins = byteInputStream;
          List lines = getItemLines();
          String item;
          String itemKey;
          for(int i=0 ; i<lines.size() ; i++)
          item = (String)lines.get(i);
          itemKey = sortString(item);
  • TugOfWar/이승한 . . . . 19 matches
         #include <iostream>
         using namespace std;
         const int MAX= 100;
         int maxToZero(int input[]); //가장큰수를 0로 바꾸어주는 함
         int returnAver(int input[]);
         void main(){
          int weight[MAX] = {0};
          int outA[MAX] = {0};
          int outB[MAX] = {0};
          int teamA, teamB;
          int aver = 0;
          int maxInInput = 0;
          int N = 0;
          int inputN = 0;
          int input = 0;
          int A, B;
          cin>>N;
          for(int n = 0; n< N; n++)
          cin.get();
          cin>> inputN;
  • UML . . . . 19 matches
         == Unified Modeling Language(UML) ==
         In software engineering, Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. However, the use of UML is not restricted to model software. It can be used for modeling hardware (engineering systems) and is commonly used for business process modeling, organizational structure, and systems engineering modeling. The UML is an open method used to specify, visualize, construct, and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
         This diagram describes the functionality of the (simple) Restaurant System. The Food Critic actor can Eat Food, Pay for Food, or Drink Wine. Only the Chef Actor can Cook Food. Use Cases are represented by ovals and the Actors are represented by stick figures. The box defines the boundaries of the Restaurant System, i.e., the use cases shown are part of the system being modelled, the actors are not.
         The OMG defines a graphical notation for [[use case]]s, but it refrains from defining any written format for describing use cases in detail. Many people thus suffer under the misapprehension that a use case is its graphical notation; when in fact, the true value of a use case is the written description of scenarios regarding a business task.
         This diagram describes the structure of a simple Restaurant System. UML shows [[Inheritance_(computer_science)|Inheritance]] relationships with a [[triangle]]; and containers with [[rhombus|diamond shape]]. Additionally, the role of the relationship may be specified as well as the cardinality. The Restaurant System has any number of Food dishes(*), with one Kitchen(1), a Dining Area(contains), and any number of staff(*). All of these objects are associated to one Restaurant.
         This diagram describes the sequences of messages of the (simple) Restaurant System. This diagram represents a Patron ordering food and wine; drinking wine then eating the food; finally paying for the food. The dotted lines extending downwards indicate the timeline. The arrows represent messages (stimuli) from an actor or object to other objects. For example, the Patron sends message 'pay' to the Cashier. Half arrows indicate asynchronous method calls.
         Above is the collaboration diagram of the (simple) Restaurant System. Notice how you can follow the process from object to object, according to the outline below:
         *2. Serve Wine
         A Collaboration diagram models the interactions between objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from [[#UML_Class Diagram|Class]], [[#UML_Sequence_Diagram|Sequence]], and [[#UML_Use_Case_Diagram|Use Case Diagrams]] describing both the static structure and dynamic behavior of a system.
         Collaboration and sequence diagrams describe similiar information, and as typically implemented, can be transformed into one another without difficulty.
         However, collaboration diagrams use the free-form arrangement of objects and links as used in Object diagrams. In order to maintain the ordering of messages in such a free-form diagram, messages are labeled with a chronological number and placed near the link the message is sent over. Reading a Collaboration diagram involves starting at message 1.0, and following the messages from object to object.
         In UML 2.0, the Collaboration diagram has been simplified and renamed the Communication diagram.
         Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a variation of the state diagram where the "states" represent operations, and the transitions represent the activities that happen when the operation is complete.
         This activity diagram shows the actions that take place when completing a (web) form.
         The user starts by filling out the form, then it is checked; the result of the check determines if the form has to be filled out again or if the activity is completed.
         Deployment diagrams serve to model the hardware used in system implementations and the associations between those components. The elements used in deployment diagrams are nodes (shown as a cube), components (shown as a rectangular box, with two rectangles protruding from the left side) and associations.
         This deployment diagram shows the hardware used in a small office network. The application server (node) is connected to the database server (node) and the database client (component) is installed on the application server. The workstation is connected (association) to the application server and to a printer.
         Although UML is a widely recognized and used standard, it is criticized for having imprecise semantics, which causes its interpretation to be subjective and therefore difficult for the formal test phase. This means that when using UML, users should provide some form of explanation of their models.
         Another problem is that UML doesn't apply well to distributed systems. In such systems, factors such as serialization, message passing and persistence are of great importance. UML lacks the ability to specify such things. For example, it is not possible to specify using UML that an object "lives" in a [[server]] process and that it is shared among various instances of a running [[process]].
         At the same time, UML is often considered to have become too bloated, and fine-grained in many aspects. Details which are best captured in source code are attempted to be captured using UML notation. The [[80-20 rule]] can be safely applied to UML: a small part of UML is adequate for most of the modeling needs, while many aspects of UML cater to some specialized or esoteric usages.
  • WinampPlugin을이용한프로그래밍 . . . . 19 matches
         winamp 의 plugin 을 이용한 프로그래밍
         winamp 의 경우 다양한 plugin 를 지원한다.
         input plugin은 해당 화일을 읽어드리고 output plugin 으로의 출력을 소스를 제공한다. output plugin 은 출력 소스를 사운드카드나 하드 디스크로의 출력을 관장한다. 이 중간에 DSP 와 Visual plugin 이 callback 으로 결과물을 받은뒤 변수들을 이용한다.
         컴파일하려면 in2.h 와 Out.h 가 필요하다. 이는 http://www.winamp.com/nsdn/ 에서 Winamp SDK를 다운받는다.
         http://download.nullsoft.com/winamp/client/wa502_sdk.zip
         #include <windows.h>
         #include <stdio.h>
         #include "in2.h"
         // define procedures, that'll be found in a .DLL
         typedef In_Module* (*INHDRPROC)(void);
         int dsp_donothing(short int *, int cnt, int, int, int) {
         int dsp_isactive() {
         // other functions, needed to get it to work
         void SAVSAInit(int maxlatency_in_ms, int srate){
         void SAVSADeInit(){
         void SAAddPCMData(void *PCMData, int nch, int bps, int timestamp){
         // printf ("%d,%d,%d\n", nch,bps,timestamp);
         int SAGetMode(){
         void SAAdd(void *data, int timestamp, int csa){
         void VSAAddPCMData(void *PCMData, int nch, int bps, int timestamp){
  • HelpOnLinking . . . . 18 matches
         #keywords inter wiki,moniwiki,wiki,wiki name,링크
         {{{WikiName}}}라고 쓰면 WikiName이 자동으로 링크가 걸립니다.
         {{{[[모니위키]]}}}라고 적으면 [[모니위키]]처럼 링크가 됩니다. 이것은 MoinMoin 최신이나 MediaWiki에서 쓰이는 페이지 이름 연결 문법으로, 모니위키에서도 호환성 측면에서 지원합니다.
          * Wiki:SixSingleQuotes 를 이용한다.
         WikiName과 같은 식으로 연결되는 것을 방지하고 있는 그대로 보여지는 것을 원한다면 느낌표(''bang'')를 다음과 WikiName앞에 붙여서 다음과 같이 사용할 수 있습니다. {{{!WikiName}}} `!WikiName`. 또한 물음표를 임의의 단어 앞에 붙이면 강제로 링크가 걸리게 됩니다. i.e. {{{?Hello}}} `?Hello`.
         그밖에 위키 문법은 HelpOnEditing 페이지를 참조하세요.
          * InterWiki
          * MeatBall:InterWiki
          * wiki:MeatBall:InterWiki
          * [wiki:MeatBall:InterWiki]
          * [wiki:MeatBall:InterWiki InterWiki page on MeatBall]
          * InterWiki
          * MeatBall:InterWiki
          * wiki:MeatBall:InterWiki
          * [wiki:MeatBall:InterWiki]
          * [wiki:MeatBall:InterWiki InterWiki page on MeatBall]
         /!\ 혼란을 피하기 위해서, {{{wiki:InterWiki/Page}}} 와 같은 링크는 모니위키에서 지원하지 않습니다.
         모인모인에서는 {{{wiki:MeatBall/InterWiki}}}와 같은 링크가 {{{wiki:MeatBall:InterWiki}}}로 인식됩니다. 하지만 이것은 {{{wiki:WikiPage/SubPage}}} 문법과 일관성이 떨어져 혼란을 주므로 이와같은 모인모인 방식의 인터위키 링크는 모니위키에서 지원하지 않습니다.
         === single bracketed syntax ===
          * {{{[Hello World]}}} link to [HelloWorld] (no space inserted)
  • MoreEffectiveC++/Techniques1of3 . . . . 18 matches
         == Item 25: Virtualizing constructors and non-member functions ==
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_124_1.gif
         list 클래스는 STL로 이루어져 있는데, Item 35를 참고하면 정보를 얻을수 있다. 단순히 이중 연결 리스크(double linked list)라고 생각하면 무리가 없을 것이다.
          for (list<NLComponent*>::constiterator it = rhs.components.begin();
          === Making Non-Member Functions Act Virtual : 비멤버 함수를 가상 함수처럼 동작하게 하기 ===
          virtual ostream& print(ostream& s) const = 0;
          virtual ostream& print(ostream& s) const;
          virtual ostream& print(ostream& s) const;
         inline
          return c.print(s);
         가상 함수의 역할을 비멤버(non-member)함수로 구현한 사례이다. 비 멤버 함수이지만 inline을 통해서 가상 함수와의 직접 연결 통로를 만들었다.
         == Item 26: Limiting the number of objects of a class ==
          * 작성자주 : 이 부분은 Singleton 패턴과 연관해서 생각하면 재미있을 것 같다. Singleton 패턴이 DP에 논의될때 이것을 감안 안한것이 아쉽다. 1995년에 발간이라 STL도 제대로 다루지 않았고, C++의 기본적인 문법을 이용해 구현하였다. MEC++는 Techniques 부분은 C++의 문법과 개념을 극한으로 쓴다는 느낌이 든다.
          === Allowing Zero or One Objects : 0 혹은 하나의 객체 만을 허용하는 방법 ===
         class CantBeInstantiated {
          CantBeInstantiated();
          CantBeInstantiated(const CantBeInstantiated&);
         class PrintJob; // 미리 선언, 프린터 작업에 쓰이는 객체. 참고 Effective C++ Item 34
         class Printer {
          void submitJob(const PrintJob& job);
  • TwistingTheTriad . . . . 18 matches
         http://www.object-arts.com/Papers/TwistingTheTriad.PDF
         http://www.esug.org/summerschools/2000_Southampton/twistingTheTriad/twistingTheTriad.pdf
         C++ 시스템의 Taligent 로부터 유래. Dolphin Smalltalk 의 UI Framework. 논문에서는 'Widget' 과 'MVC' 대신 MVP 를 채택한 이유 등을 다룬다고 한다. 그리고 MVC 3 요소를 rotating (or twisting)함으로서 현재 존재하는 다른 Smalltalk 환경보다 쓰기 쉽고 더 유연한 'Observer' based framework 를 만들 것을 보여줄 것이다.
         with a widget-based system it is easy to avoid having to think about the (required) separation between the user interface and the application domain objects, but it is all too easy to allow one's domain code to become inextricably linked with the general interface logic.
         it was much more that the widget system was just not flexible enought. We didn't know at the time, but were just starting to realise, that Smalltalk thrives on plugability and the user interface components in out widget framework were just not fine-grained enough.
         One example of this deficiency surfaced in SmalltalkWorkspace widget. This was originally designed as a multiline text-editing component with additional logic to handle user interface commands such as Do-it, Show-it, Inspect-it etc. The view itself was a standard Windows text control and we just attached code to it to handle the workspace functionality. However, we soon discovered that we also wanted to have a rich text workspace widget too. Typically the implementation of this would have required the duplication of the workspace logic from the SmalltalkWorkspace component or, at least, an unwarranted refactoring session. It seemed to us that the widget framework could well do with some refactoring itself!
         In MVC, most of the application functionality must be built into a model class known as an Application Model. It is the reponsibility of the application model to be the mediator between the true domain objects and the views and their controllers. The views are responsible for displaying the domain data while the controller handle the raw usr gestures that will eventually perform action on this data. So the application model typically has method to perform menu command actions, push buttons actions and general validation on the data that it manages. Nearly all of the application logic will reside in the application model classes. However, because the application model's role is that of a go-between, it is at times necessary for it to gain access to the user interface directly but, because of the Observer relationship betweeen it and the view/controller, this sort of access is discouraged.
         For example, let's say one wants to explicitly change the colour of one or more views dependent on some conditions in the application model. The correct way to do this in MVC would be to trigger some sort of event, passing the colour along with it. Behaviour would then have to be coded in the view to "hang off" this event and to apply the colour change whenever the event was triggered. This is a rather circuitous route to achieving this simple functionality and typically it would be avoided by taking a shoutcut and using #componentAt : to look up a particular named view from the application model and to apply the colour change to the view directly. However, any direct access of a view like this breaks the MVC dictum that the model should know nothing about the views to which it is connected. If nothing else, this sort of activity surely breaks the possibility of allowing multiple views onto a model, which must be the reason behind using the Observer pattern in MVC in the first place.
         === TwistingTheTriad : ModelViewPresenter ===
         This is the data upon which the user interface will operate. It is typically a domain object and the intention is that such objects should have no knowledge of the user interface. Here the M in MVP differs from the M in MVC. As mentioned above, the latter is actually an Application Model, which holds onto aspects of the domain data but also implements the user interface to manupulate it. In MVP, the model is purely a domain object and there is no expectation of (or link to) the user interface at all.
         The behaviour of a view in MVP is much the same as in MVC. It is the view's responsibility to display the contents of a model. The model is expected to trigger appropriate change notification whenever its data is modified and these allow the view to "hang off" the model following the standard Observer pattern. In the same way as MVC does, this allows multiple vies to be connected to a single model.
         One significant difference in MVP is the removal of the controller. Instead, the view is expected to handle the raw user interface events generated by the operating system (in Windows these come in as WM_xxxx messages) and this way of working fits more naturally into the style of most modern operating systems. In some cases, as a TextView, the user input is handled directly by the view and used to make changes to the model data. However, in most cases the user input events are actually routed via the presenter and it is this which becomes responsible for how the model gets changed.
         While it is the view's responsibility to display model data it is the presenter that governs how the model can be manipulated and changed by the user interface. This is where the heart of an application's behaviour resides. In many ways, a MVP presenter is equivalent to the application model in MVC; most of the code dealing with how a user interface works is built into a presenter class. The main difference is that a presenter is ''directly'' linked to its associated view so that the two can closely collaborate in their roles of supplying the user interface for a particular model.
         Compared with our orignnal widget framework, MVP offers a much greater separation between the visual presentation of an interface and the code required to implement the interface functionality. The latter resides in one or more presenter classes that are coded as normal using a standard class browser.
  • 새싹교실/2012/세싹 . . . . 18 matches
          * 수업과목: everything you want
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
          3) Virtualbox실행 -> 새로 만들기 -> 운영체제 : Linux 버전 : Ubuntu -> 메모리1024MB로 설정하고 나머지 디폴트 설치
          4) terminal 실행 -> .c 파일이 있는 경로로 이동 (ls와 cd를 이용합니다.)
          1) virtual box로 linux 설치 후 hello world 작성하고 컴파일하여 스크린샷을 강사 메일로 보내주세요.
          2) linux의 다양한 명령어 검색해보기
          - link : 노드와 노드간에 데이터를 주고받는 역할을 합니다. 스위치, 브릿지등이 포함됩니다.
          - 인터넷 소켓(Internet socket, socket' 혹은 network socket 라고 부르기도 한다)은 네트워크로 연결되어 있는 컴퓨터의 통신의 접점에 위치한 통신 객체다.
          5) 자세한 사항은 http://forum.falinux.com/zbxe/?document_srl=441104 를 참고하세요.
          * 오피에서 숙제를 했습니다. VS로 하려니까 뭔가 막 오류가 나는데 고치지는 못하겠고 그래서 우분투를 깔아서 시도를 했네요. 용어가 익숙하지 않아서 그런지 함수 설명을 봐도 한번에 와닿지 않아서 힘들었습니다. 아 그리고 숙제를 하다가 생긴 문제인데요. 서버 프로그램을 처음 실행했을 때는 괜찮은데 두 번째로 실행했을 때는 Bind에러가 나네요. 그래서 매번 실행할 때마다 포트값을 수정해야했습니다. 왜 이런 문제가 생긴걸까요? - [권영기]
          * [권영기] 학생이 맞닥트린 bind 오류는, 해당 포트에 내가 가서 눌러앉으려고(bind하려고) 가 보니까 다른 놈이 이미 차지하고 있어서 bind하지 못했다는 오류입니다. 프로그램에서 bind한 후 다 쓰고 나서 bind를 해제하지 않으면 이런 일이 발생합니다. bind 해제 코드를 꼭 넣도록 하세요. - [황현]
          * 자세한 해결 방법입니다. 소켓을 생성하고나서 바로 setsockopt(mySocket, SOL_SOCKET, SO_REUSEADDR, &anyIntegerVariableThatContainsNonZero, sizeof(anyIntegerVariableThatContainsNonZero)); 함수를 호출하면 이 소켓의 생명이 다하는 순간 해당 포트에 자리가 나게 됩니다. - [황현]
          - 양방향 통신중 한쪽이 off-line상태인 경우에도 메시지의 전송과 수령이 가능하도록
          - terminal을 여러개 실행시켜 실험을 진행해 보세요.
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/recv
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/read
          * 소캣 옵션 참고 사이트 (close시 bind 해제 설정)
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/AdvancedComm/SocketOption
          - 자세한 내용은 링크를 참조. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/WhatThread
  • HelpOnMacros . . . . 17 matches
         매크로는 위키 페이지에 특수한 기능을 집어넣는 확장입니다. 대부분의 위키페이지는 매크로기능을 사용하지 않고 있지만 경우에 따라서 이러한 특수한 기능이 필요할 때가 있습니다. 예를 들어 RecentChanges 페이지에는 RecentChanges매크로를 사용하고 있고, SystemInfo 페이지에는 SystemInfo 매크로를 사용하고 있습니다. 각 페이지를 편집하거나 [[Icon(info)]]를 눌러 이전 정보로부터 페이지 소스를 보시면 매크로를 어떻게 사용하고 있는지를 보실 수 있습니다.
         위키 문법이 궁금하시면 HelpOnEditing 페이지를 참조하세요.
         $myplugins=array("각주"=>"FootNote",...); # ...는 생략을 뜻합니다. 다른 내용이 없으면 쓰지 않으셔야 합니다.
          * 이경우 대소문자 구분이 중요한데, 반드시 `plugin/파일이름.php`에 대응하는 파일이름을 {{{"각주"=>"매크로파일이름"}}}식으로 지정해야 합니다.
         ||{{{[[TitleSearch]]}}} || 페이지 제목/별명 찾기 [* 모니위키 1.1.5부터 페이지 별명도 찾아줍니다] || FindPage ||
         ||{{{[[FullSearch]]}}} || 페이지 내용 찾기 || FindPage ||
         ||{{{[[GoTo]]}}} || 페이지 바로가기 || FindPage ||
         ||{{{[[PageList(regex)]]}}} || 정규식에 해당하는 페이지이름 찾기 || HelpIndex ||
         ||{{{[[TitleIndex]]}}} || 모든 페이지에 대한 제목 목차 || TitleIndex ||
         ||{{{[[WordIndex]]}}} || 페이지 이름으로 구성된 단어 목차 || WordIndex ||
         ||{{{[[InterWiki]]}}} || 등록된 [[인터위키]] 이름 || InterWiki ||
         ||{{{[[SystemInfo]]}}} || 현재 위키의 사양 || SystemInfo ||
         ||{{{[[Include(HelloWorld[,heading[,level]])]]}}} || 다른 페이지를 읽어옴 || [[Include(HelloWorld)]] ||
         각각의 매크로에 대한 예제는 각 매크로 해당 페이지에서 보실 수 있습니다. 간단한 예로 SystemInfo페이지에서 사용하는 {{{[[SystemInfo]]}}}매크로입니다. {{{[[SystemInfo]]}}}를 임의의 페이지에 집어넣으면 다음과 같이 보여집니다:
          [[SystemInfo]]
         [[Navigation(HelpOnEditing)]]
  • 오목/곽세환,조재화 . . . . 17 matches
         // ohbokView.h : interface of the COhbokView class
         #if !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
         #define AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          void VictoryMessage(int count, int z);
          void WhoIsVictory(int y,int x, int z);
          int turn;
          int array[10][10];
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
         #ifndef _DEBUG // debug version in ohbokView.cpp
         inline COhbokDoc* COhbokView::GetDocument()
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
         // ohbokView.cpp : implementation of the COhbokView class
         #include "stdafx.h"
         #include "ohbok.h"
  • 오목/진훈,원명 . . . . 17 matches
         // OmokView.h : interface of the COmokView class
         #if !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
         #define AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual void OnInitialUpdate();
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
          int movecnt;
          int Count;
          int turn;
          int putX;
          int putY;
          int board[9][9];
         #ifndef _DEBUG // debug version in OmokView.cpp
         inline COmokDoc* COmokView::GetDocument()
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
  • Gof/FactoryMethod . . . . 16 matches
         == Intent : 의도 ==
         여러 문서를 사용자에게 보여줄수 있는 어플리케이션에 대한 Framework에 대하여 생각해 보자. 이러한 Framework에서 두가지의 추상화에 대한 요점은, Application과 Document클래스 일것이다. 이 두 클래스다 추상적이고, 클라이언트는 그들의 Application에 알맞게 명세 사항을 구현해야 한다. 예를들어서 Drawing Application을 만들려면 우리는 DrawingApplication 과 DrawingDocument 클래스를 구현해야 한다. Application클래스는 Document 클래스를 관리한다. 그리고 사용자가 Open이나 New를 메뉴에서 선택하였을때 이들을 생성한다.
         A potential disadvantage of factory methods is that clients might have to subclass the Creator class just to create a particular ConcreteProduct object. Subclassing is fine when the client has to subclass the Creator class anyway, but otherwise the client now must deal with another point of evolution.
         Here are two additional consequences of the Factory Method pattern:
          병렬 클래스 상속은 클래스가 어떠한 문제의 책임에 관해서 다른 클래스로 분리하고, 책임을 위임하는 결과를 초례한다. 조정할수 있는 그림 도형(graphical figures)들에 관해서 생각해 보자.;그것은 마우스에 의하여 뻗을수 있고, 옮겨지고, 회정도 한다. 그러한 상호작용에 대한 구현은 언제나 쉬운것만은 아니다. 그것은 자주 늘어나는 해당 도형의 상태 정보의 보관과 업데이트를 요구한다. 그래서 이런 정보는 상호 작용하는, 객체에다가 보관 할수만은 없다. 게다가 서로다른 객체의 경우 서로다른 상태의 정보를 보관해야 할텐데 말이다. 예를들자면, text 모양이 바뀌면 그것의 공백을 변화시키지만, Line 모양을 늘릴때는 끝점의 이동으로 모양을 바꿀수 있다.
          if (id == MINE) return new MyProduct;
          예를 들어서 sub클래스 MyCreator는 MyProduct와 YouProduct를 바꾸고, 새로운 TheirProduct Sub클래스를 지원할수 있다.
          if (id == MINE) return new YourProduct;
          if (id == THEIRS) return new TheirProduct; // 새로운 product 추가
          DeleteMe 모호)마지막 부분에서 부모 클래스의 인자를 수행하는 것을 주목해라. MyCreator::Create는 오직 YOURS, MINE, THEIRS를 잡을수 있고, 부모클래스는 잡지 못한다. 다른 클래스는 이를 수행하지 못한다. 그러므로, MyCreator는 생성된 product의 한 종류를 확장하고, 그것은 생성에 대한 책임을 연기한다. 하지만, product가 그것의 부모인것은 적다.
         MyCreator::Create handles only YOURS, MINE, and THEIRS differently than the parent class. It isn't interested in other classes. Hence MyCreator extends the kinds of products created, and it defers responsibility for creating all but a few products to its parent.
         You can avoid this by being careful to access products solely through accessor operations that create the product on demand. Instead of creating the concrete product in the constructor, the constructor merely initializes it to 0. The accessor returns the product. But first it checks to make sure the product exists, and if it doesn't, the accessor creates it. This technique is sometimes called lazy initialization. The following code shows a typical implementation:
          4. Using templates to avoid subclassing. As we've mentioned, another potential problem with factory methods is that they might force you to subclass just to create the appropriate Product objects. Another way to get around this in C++ is to provide a template subclass of Creator that's parameterized by the Product
          return new TheProduct;
         With this template, the client supplies just the product class?no subclassing of Creator is required.
          5. Naming conventions. It's good practice to use naming conventions that make it clear you're using factory methods. For example, the MacApp Macintosh application framework [App89] always declares the abstract operation that defines the factory method as Class* DoMakeClass(), where Class is the Product class.
         The function CreateMaze (page 84) builds and returns a maze. One problem with this function is that it hard-codes the classes of maze, rooms, doors, and walls. We'll introduce factory methods to let subclasses choose these components.
         First we'll define factory methods in MazeGame for creating the maze, room, wall, and door objects:
          virtual Room* MakeRoom(int n) const
         Each factory method returns a maze component of a given type. MazeGame provides default implementations that return the simplest kinds of maze, rooms, walls, and doors.
  • MoreEffectiveC++/Operator . . . . 16 matches
         == Item 5: Be wary of user-defined conversion functions. ==
          * C++는 타입간의 암시적 type casting을 허용한다. 이건 C의 유산인데 예를 들자면 '''char'''과 '''int''' 에서 '''short'''과 '''double''' 들이 아무런 문제없이 바뀌어 진다. 그런데 C++는 이것 보다 한수 더떠서 type casting시에 자료를 잃어 버리게 되는 int에서 short과 dougle에서 char의 변환까지 허용한다.[[BR]]
          * C++에서는 크게 두가지 방식의 함수로 형변환을 컴파일러에게 수행 시키킨다:[[BR]] '''''single-argument constructors''''' 와 '''''implicit type conversion operators''''' 이 그것이다.
          * '''''single-argument constructors''''' 은 인자를 하나의 인자만으로 세팅될수 있는 생성자이다. 여기 두가지의 예를 보자
          Name( const string& s);
          Rational( int numerator = 0, int denominator = 1);
         cout << r; // should print "1/2"
         이런 예로 C++ std library에 있는 string이 char*로 암시적 형변환이 없고 c_str의 명시적 형변환 시킨다.
          * '''''single-argument constructor''''' 는 더 어려운 문제를 제공한다. 게다가 이문제들은 암시적 형변환 보다 더 많은 부분을 차지하는 암시적 형변환에서 문제가 발생된다.
          Array ( int lowBound, int highBound );
          Array ( int size )
          T& operator[] (int index)
         bool operator==( const Array< int >& lhs, const Array<int>& rhs);
         Array<int> a(10);
         Array<int> b(10);
         for ( int i = 0; i<10; ++i)
         7줄 ''if ( a == b[i] )'' 부분의 코드에서 프로그래머는 자신의 의도와는 다른 코드를 작성했다. 이런 문법 잘못은 당연히! 컴파일러가 알려줘야 개발자의 시간을 아낄수 있으리, 하지만 이런 예제가 꼭 그렇지만은 않다. 이 코드는 컴파일러 입장에서 보면 옳은 코드가 될수 있는 것이다. 바로 Array class에서 정의 하고 있는 '''''single-argument constructor''''' 에 의하여 컴파일시 이런 코드로의 변환의 가능성이 있다.
         for ( int i = 0; i < 10; ++i)
          if ( a == static_cast< Array<int> >(b[i]) )...
         '''b[i]''' 는 int형을 반환하기 때문에 이렇게 즉석에서 맞춤 생성자로 type casting(형변환)을 컴파일러가 암시적으로 해줄수 있다. 이제 사태의 심각성을 알겠는가?
  • NSIS/예제1 . . . . 16 matches
         Name "TestInstallSetup"
         OutFile "TestInstallSetup.exe"
         InstallDir $PROGRAMFILES\TestInstallSetup
         ; The text to prompt the user to enter a directory
         DirText "This will install the very simple example1 on your computer. Choose a directory"
         Section "ThisNameIsIgnoredSoWhyBother?"
          SetOutPath $INSTDIR
          File "C:\windows\notepad.exe"
         MakeNSIS v1.95 - Copyright 1999-2001 Nullsoft, Inc.
         Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
         Processing config:
         Processing script file: "example1.nsi"
         Name: "TestInstallSetup"
         OutFile: "TestInstallSetup.exe"
         InstallDir: "$PROGRAMFILES\TestInstallSetup"
         DirText: "This will install the very simple example1 on your computer. Choose a directory" "" ""
         Section: "ThisNameIsIgnoredSoWhyBother?"
         SetOutPath: "$INSTDIR"
         Processed 1 file, writing output:
         Output: "C:\Program Files\NSIS\TestInstallSetup.exe"
  • WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 16 matches
         그래서 Programming in Lua라는 책을 도서관에서 빌려왔다. 아마 빌려온지 1주일은 됬겠지.
         Eclipse에서 Java외의 다른것을 돌리려면 당연 인터프리터나 컴파일러를 설치해주어야 한다. 그래서 Lua를 설치하려했다. LuaProfiler나 LuaInterpreter를 설치해야한다는데 도통 영어를 못읽겠다 나의 무식함이 들어났다.
         에서 루아 Windows 인스톨러를 받아서 설치하게됬다.
         LuaForWindows_v5.1.4-35.exe
         설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다.
         package utfencoding;
         import java.io.UnsupportedEncodingException;
         public class UtfEncoding {
          final static char[] first = {
          final static char[] middle = {
          final static char[] last = {
          public static void main(String[] args) {
          String temp = "바";
          int cho = a/21/28;
          int joong = ( (a %(21*28))/28);
          int jong = (a%28);
          System.out.println(""+ (char)first[cho] + (char)middle[joong] + (char)last[jong]);
         현재 Eclipse개발환경중 문자 Encoding은 UTF-8방식이다.
         그리고 UI와 LUA를 Mapping 시켜주는 *.xml
         기본적으로 "/World of Warcraft/interface/addons/애드온명" 으로 폴더가 만들어져있어야한다.
  • whiteblue/파일읽어오기 . . . . 16 matches
         #include <iostream>
         #include <fstream>
         #include <cmath>
         #include <string>
         using namespace std;
         #include <vector>
         class UserInfo
          string szName; // User's name
          unsigned int nSchoolNumber; // User's school number
          UserInfo() {}
          UserInfo( string szN, unsigned int nSN )
          unsigned int getSchoolNumber() { return nSchoolNumber; }
          string getName() { return szName; }
         class BookInfo
          int nBookNumber;
          string szBookName;
          string szWriter;
          string szPublishingCompany;
          UserInfo * pLendPeople;
          BookInfo() {}
  • 데블스캠프2005/java . . . . 16 matches
         '''Early history of JavaLanguage (quoted from [http://en.wikipedia.org/wiki/Java_programming_language#Early_history wikipedia] ):
         The Java platform and language began as an internal project at Sun Microsystems in the December 1990 timeframe. Patrick Naughton, an engineer at Sun, had become increasingly frustrated with the state of Sun's C++ and C APIs and tools. While considering moving to NeXT, Patrick was offered a chance to work on new technology and thus the Stealth Project was started.
         The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Patrick Naughton. They, together with some other engineers, began work in a small office on Sand Hill Road in Menlo Park, California to develop a new technology. The team originally considered C++ as the language to use, but many of them as well as Bill Joy found C++ and the available APIs problematic for several reasons.
         Their platform was an embedded platform and had limited resources. Many members found that C++ was too complicated and developers often misused it. They found C++'s lack of garbage collection to also be a problem. Security, distributed programming, and threading support was also required. Finally, they wanted a platform that could be easily ported to all types of devices.
         According to the available accounts, Bill Joy had ideas of a new language combining the best of Mesa and C. He proposed, in a paper called Further, to Sun that its engineers should produce an object-oriented environment based on C++. James Gosling's frustrations with C++ began while working on Imagination, an SGML editor. Initially, James attempted to modify and extend C++, which he referred to as C++ ++ -- (which is a play on the name of C++ meaning 'C++ plus some good things, and minus some bad things'), but soon abandoned that in favor of creating an entirely new language, called Oak named after the oak tree that stood just outside his office.
         Like many stealth projects working on new technology, the team worked long hours and by the summer of 1992, they were able to demo portions of the new platform including the Green OS, Oak the language, the libraries, and the hardware. Their first attempt focused on building a PDA-like device having a highly graphical interface and a smart agent called Duke to assist the user.
         The device was named Star7 after a telephone feature activated by *7 on a telephone keypad. The feature enabled users to answer the telephone anywhere. The PDA device itself was demonstrated on September 3, 1992.
         In November of that year, the Green Project was spun off to become a wholly owned subsidiary of Sun Microsystems: FirstPerson, Inc. The team relocated to Palo Alto. The FirstPerson team was interested in building highly interactive devices and when Time Warner issued an RFP for a set-top box, FirstPerson changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the user and FirstPerson lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. FirstPerson was unable to generate any interest within the cable TV industry for their platform. Following their failures, the company, FirstPerson, was rolled back into Sun.
  • 서지혜/단어장 . . . . 16 matches
          명령적인 : 1. imperative programming. 2. We use the Imperative for direct orders and suggestions and also for a variety of other purposes
          당황하게 하다 : The thing that baffles me is that the conversations do not center around the adults but almost exclusively about their respective kids
          수업료 : Tuition payments, known primarily as tuition in American English and as tuition fees in British English.
          (세금)추가 부담금 : he does not object to paying the levy
          소집 : a levy brief [ meaning ]
          1. What you need to do, instead, is to abbreviate.
          음절 : 1. Don't breathe a syllable(word) about it to anyone. 2. He explained it in words of one syllable. 3. He couldn't utter a syllable in reply(그는 끽소리도 못했다)
          The wrangler rounded the drove toward the tents.
         '''Administration'''
          관리직 : administration officer
          1. I've decided to study full-time to finish my business administration degree
          2. I'm working on a master's degree in business administration.
         '''administer (= administrate)'''
          관리하다 : The pension funds are administered by commercial banks.
          집행하다 : It is no basis on which to administer law and order that people must succumb to the greater threat of force.
          무릎을 꿇다 : The town succumbed after a short siege.
          포위 작전 : Our army is laying siege to the enemy.
          인용 : The forms of citations generally subscribe to one of the generally excepted citations systems, such as Oxford, Harvard, and other citations systems, as their syntactic conventions are widely known and easily interrupted by readers.
          The study of history of words, their origins, and how their form and meaning have changed over time.
         '''intrinsic'''
  • BusSimulation/태훈zyint . . . . 15 matches
         == main.cpp ==
         #include <iostream>
         #include <fstream>
         #include <vector>
         #include <windows.h> //sleep
         #include <string>
         #include <conio.h>
         const int BusStationNo = 10; // 버스 정류장의 개수
         const int BusNo = 10; // 버스의 대수
         #include "class.h"
         #include "function.h"
         using namespace std;
         void gotoxy(int x, int y);
         int main()
          int MinuteOfInterval=12*60; //버스 배차 간격 sec
          long waitingPeopleInBusStation[BusStationNo] = {0,0,}; //각 정류장에서 기다리는 사람수
          int IncreasePerMinute_People = 4; //버스 정류장에 사람들이 1분당 증가하는 정도
          int ridingSecond = 2; //1사람이 버스에 타는데 걸리는 시간(초)
          int LastMovingBusIndex=-1; //마지막 움직이기 시작한 버스의 인덱스
          int LastMovingBusStartTime= -1 * MinuteOfInterval;
  • EightQueenProblem/김형용 . . . . 15 matches
         from pprint import pprint
          for num in range(x,-1,-1):
          for num in range(y-1,-1,-1):
          for num in range(x,8):
          for num in range(y-1,-1,-1):
          def __init__(self, name):
          if (ax not in range(8)) or (ay not in range(8)):
          def isInRow(self):
          for tempy in range(8):
          def isInColumn(self):
          for tempx in range(8):
          def isInRightDig(self):
          for tempx,tempy in makeRightDigTuple(self.getPosition()):
          def isInLeftDig(self):
          for tempx,tempy in makeLeftDigTuple(self.getPosition()):
          return self.isInRow() or self.isInColumn() or \
          self.isInRightDig() or self.isInLeftDig()
          continue
          for name in range(1,9):
          for i in range(8):
  • MoreMFC . . . . 15 matches
         Programming with Mfc - Jeff prosise (책 요약 정도 or 책장사.. --;)
         그럼.. to be continue.. [[BR]]
         == Programming with MFC ==
         언제나 그렇듯, Window programming을 할때 처음 등장하는 예제는. Hello~ 시리즈다. 그 source를 통해 MFC프로그램에 첫발을 디딜것이며.. 요책에 나온 윈도우의 이모저모에 관해 설명할것이다. 뭐 .. 대충대충 해나갈 것이지만.. 그럼.. windows programming의 세계로. gogogo -- v [[BR]][[BR]]
         그리고, MFC를 하기전에 꼭 한번씩 나오는 SDK로 하는 windows programming. source. [[BR]]
         MFC자체는 이런 WinMain이나 WndProc 는 감추지만 밑단에서 이런 식으로 돌아간다는 것을 조금이라도 알게 하기 위해서 포함. 무시해도 상관 없음. ㅋㅋ
         // 주석 없음.. 그냥.. WinMain과 WndProc가 있구나만 보고 넘어 가시길.. 키키
         #include <windows.h>
         int WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
         wc.hInstance = hInstance;
         wc.hIcon = LoadIcon (NULL, IDI_WINLOGO);
         wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
         hwnd = CreateWindow (_T("MyWndClass"), "SDK Application",
          WS_OVERLAPPEDWINDOW,
          hInstance,
          NULL ); // window를 만들었지만 보이지는 않는다.
         ShowWindow (hWnd, nCmdShow); // window 보여주기. --;
         UpdateWindow (hWnd);
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  • MySQL 설치메뉴얼 . . . . 15 matches
         A more detailed version of the preceding description for installing a
         binary distribution follows:
          1. Add a login user and group for `mysqld' to run as:
          These commands add the `mysql' group and the `mysql' user. The
          different versions of Unix, or they may have different names such
          You might want to call the user and group something else instead
          of `mysql'. If so, substitute the appropriate name in the
          following steps.
          2. Pick the directory under which you want to unpack the distribution
          and change location into it. In the following example, we unpack
          the distribution under `/usr/local'. (The instructions, therefore,
          assume that you have permission to create files and directories in
          `/usr/local'. If that directory is protected, you must perform the
          installation as `root'.)
          3. Obtain a distribution file using the instructions in *Note
          getting-mysql::. For a given release, binary distributions for all
          platforms are built from the same MySQL source distribution.
          4. Unpack the distribution, which creates the installation directory.
          Then create a symbolic link to that directory:
          The `tar' command creates a directory named `mysql-VERSION-OS'.
  • WikiSlide . . . . 15 matches
          * a technology for collaborative creation of internet and intranet pages
         === Principles ===
          * '''Fast''' - fast editing, communicating and easy to learn
          * '''Open''' - everybody may read ''and'' edit everything
          * '''Uncomplicated''' - everything works in a standard browser
          * '''Simple''' - ''Content over Form'' (content counts, not the super-pretty appearance)
          * '''Secure''' - every change is archived, nothing gets lost
          * '''Interlinked''' - Links between pages are easy to make
          * Personal Information Management, Knowledgebases, Brainstorming
          * Collaboration, Coordination and Communication platform
          * Creating documentation and slide shows ;)
         == The First Steps ==
          * Email address for subscribing to page change emails and retrieving a lost login/password
          * Link with User-ID ( (!) ''in any case, put a bookmark on that'')
          * Navigation: Quicklinks, Icons link to system actions (HelpOnNavigation)
         Searching and Navigation:
          * Backlinks (click on title)
          * SiteNavigation: A list of the different indices of the Wiki
          * FindPage: Searching the Wiki by various methods
          * TitleIndex: A list of all pages in the Wiki
  • [Lovely]boy^_^/EnglishGrammer/Passive . . . . 15 matches
          A. ex) This house(subject) was built in 1930. (passive)
          ex) Somebody(subject) built this house in 1930. (active)
          ex) Two hundred people are employed by the company.
          B. When we use the passive, who or what causes the action is often unknown or unimportant.(그리니까 행위주체가 누군지 모를때나 별로 안중요할때 수동태 쓴대요)
          ex) A lot of money was stolen in the robbery.
          If we want to say who does or what causes the action, we use by(수동태에서 누가 했는지 알고 싶으면 by 쓰래요)
          ex) This house was built by my grandfather.
         == Unit40. Passive(2) (be / been / being done) ==
          A. After will / can / must / going to / want to, etc...
          active) Somebody will clean the room later.
          passive) The room will be cleaned later.
          ex) The music was very loud and could be heard from a long way away.
          active) Somebody should have cleaned the room.
          passive) The room should have been cleaned.
          ex) I haven't received the letter yet. It might have been sent to the wrong address.
          active) The room looks nice. Somebody has cleaned it.
          passive) The room looks nice. It has been cleaned.
          active) The room looked nice. Somebody had cleaned it.
          passive) The room looked nice. It had been cleaned.
          D. Present continuous
  • 오목/재니형준원 . . . . 15 matches
         // OmokView.h : interface of the COmokView class
         #if !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
         #define AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_
          int row, col;
          int omokBoard[19][19];
          int number;
          int count;
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          void CheckMove(int r, int c, int x, int y);
          void init();
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
         #ifndef _DEBUG // debug version in OmokView.cpp
         inline COmokDoc* COmokView::GetDocument()
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
         // omokView.cpp : implementation of the COmokView class
  • 윤종하/지뢰찾기 . . . . 15 matches
         /* mine.c: 지뢰찾기 소스 파일(TUI)
         종류: win32 console program
         #include<stdio.h>
         #include<stdlib.h>
         #include<time.h>
         #include<conio.h>
         #include<windows.h>
         #define TRUE 1
         #define FALSE 0
         //#define NO_STATE 3
          int iIsRevealed;
          int iIsMine;
          int iNumOfMine;//주변에 있는 지뢰의 개수
          int iIsUnknown;
          int iIsFined;
         COORD* make_mine_map(CELL** map,COORD size,int iNumOfMine);
         void print_map(CELL** map,COORD size,int iNumOfMine,int iCurrentFindedMine);
         int click_cell(CELL** map,COORD size,int *iNumOfLeftCell);
         void one_right_click_cell(CELL** map,COORD size,COORD *cPosOfMine,int iNumOfMine,int *iFindedRealMine);
         void find_mine(CELL** map,COORD size,COORD pos,int *iNumOfLeftCell);
  • Garbage collector for C and C++ . . . . 14 matches
          * 유닉스나 리눅스에서는 "./configure --prefix=<dir>; make; make check; make install" 으로 인스톨 할수 있다.
          * GNU-win32 에서는 기본으로 있는 Makefile 을 사용하면된다.
          * win32 쓰레드를 지원하려면 NT_THREADS_MAKEFILE 을 사용한다. (gc.mak 도 같은 파일 이다.)
          * 예) nmake /F ".gc.mak" CFG="gctest - Win32 Release"
          * WinXP, MinGW, Msys
          * -DGC_OPERATOR_NEW_ARRAY -DJAVA_FINALIZATION 을 CFLAGS 에 추가.
          * Windows NT 나 Windows 2000 에서 문제가 발생한다면 -DUSE_GLOBAL_ALLOC 나 -DUSE_MUNMAP 옵션을 사용하여 컴파일 한다.
         # -DSILENT disables statistics printing, and improves performance.
         # -DFIND_LEAK causes GC_find_leak to be initially set.
         # This causes the collector to assume that all inaccessible
         # Finalization and the test program are not usable in this mode.
         # (Clients should also define GC_SOLARIS_THREADS and then include
         # gc.h before performing thr_ or dl* or GC_ operations.)
         # Must also define -D_REENTRANT.
         # (Internally this define GC_SOLARIS_THREADS as well.)
         # -DGC_LINUX_THREADS enables support for Xavier Leroy's Linux threads.
         # see README.linux. -D_REENTRANT may also be required.
         # Appeared to run into some underlying thread problems.
         # -DALL_INTERIOR_POINTERS allows all pointers to the interior
         # Alternatively, GC_all_interior_pointers can be set at process
  • JavaStudy2003/두번째과제/곽세환 . . . . 14 matches
         import javax.swing.JOptionPane;
          private int array[][]; //판의 배열
          private int max_x; //판의 가로크기
          private int max_y; //판의 세로크기
          public Board(int x, int y) {
          array = new int[max_y][max_x];
          for (int i = 0; i < max_y; i++)
          for (int j = 0; j < max_x; j++)
          for (int i = 0; i < max_y; i++)
          for (int j = 0; j < max_x; j++)
          public boolean IsPostionWall(int x, int y) {
          public void PutStep(int x, int y) {
          String output = "";
          for (int i = 0; i < max_y; i++)
          for (int j = 0; j < max_x; j++)
          private int p_x; // 바퀴의 현재 x 위치
          private int p_y; // 바퀴의 현재 y 위치
          public void Move(Board bo, int x, int y) {
          int c_x; // 바퀴가 이동할 x 위치
          int c_y; // 바퀴가 이동할 y 위치
  • ProjectZephyrus/Server . . . . 14 matches
          +---- bin : 실행 파일들의 저장고, 현재 빌드에서는 저장하지 않는다
          +---- information : DB와 같은 사용자 정보 관리 패키지
          java_win.bat : Windows용 RunServer 실행 batch파일
          javac_win.bat : Windows용 프로젝트 컴파일 batch파일
          java_zp : ZeroPage Server 실행 bash script (zp에서만 돈다. bin이 classpath에 안들어가서 꽁수로 처리,port번호를 변경할수 없다.)
          * Perspective를 CVS Repositary Explorering에서 {{{~cpp CheckOut}}}을 한다음, 컴파일이 안된다면 해당 프로젝트의 JRE_LIB가 잘못 잡혀 있을 가능성이 크다. (Win98에서 JRE가 잘못 설치되어 있을때) 방법은 ["Eclipse"]에서 Tip중 설치 부분을 찾아 보라
          * JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능
         http://165.194.17.15/~neocoin/ProjectZephyrus/Server/doc/index.html
         ||05.23|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0523-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020523-a.mdl Rose]||.||
         ||05.24|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0524-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a.mdl Rose] ||.||
         ||05.27|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0527-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020527-a.mdl Rose]||.||
         ||06.02|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0602-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020602-a30.mdl MS VM] ||
         ||06.03|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0603-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020603-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020603-a30.mdl MS VM] ||
         ||06.07|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer-0607-aSC.gif gif] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020607-a.mdl Rose] || [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/ProjectZephyrusServer_20020607-a30.mdl MS VM] ||
          * 현재 ZeroPage와 Windows 2k상에 한글 인코딩 문제로 후자로 해야 ZeroPage서버에서 한글로 안내 메세지가 나옴. 컴파일시 해결할수 있지만 귀찮아서 --;; --상민
         ||java -jar {{{~cpp PZServerForWin.jar}}} Port번호(Default 22000)||[http://165.194.17.15/~neocoin/ProjectZephyrus/Server/PZServerForWin.jar jar]||Windows||
         ||java -jar {{{~cpp PZServerForZeroPage.jar}}} Port번호(Default 22000)|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/PZServerForZeroPage.jar jar]||ZeroPage용||
         ||로그인 객체의 생성, {{{~cpp InfoManager}}}에게 자료 요청||{{{~cpp LoginCmd}}}||류상민||90%||
         ||로그인 객체에 정보 기록||{{{~cpp InfoManager}}}||이상규||90%||
         ||로그 아웃시 {{{~cpp LogoutCmd}}}에 정보 기록 || {{{~cpp InfoManager}}} ||이상규||90%||
  • RefactoringDiscussion . . . . 14 matches
         Refactoring 과 관련된 토론, 질문/답변의 장으로 활용한다.
         refactoring 의 전제 조건은, '''Refactoring 전 후의 결과가 같아야 한다.''' 라는 것이다.
         Martin Folwer의 Refactoring p326(한서), 10장의 Parameterize Method 를 살펴보면 다음과 같은 내용이 나온다.
          double result = Math.min(lastUsage(),100) * 0.03;
          result += (Math.min (lastUsage(),200) - 100) * 0.05;
          double result = usageInRange(0, 100) * 0.03; //--(1)
          result += usageInRange (100,200) - 100) * 0.05;
          result += usageInRange (200, Integer.MAX_VALUE) * 0.07;
         protected int usageInRange(int start, int end) {
          if (lastUsage() > start) return Math.min(lastUsage(),end) - start;
         '''"MatrinFowler의 추종자들은 lastUsage()가 0 이상인 값에 대해 동작하는것일테니 (코드를 보고 추정하면 그렇다) 당연한거 아니냐?"''' 라고 이의를 제기할지는 모르지만, 이건 Refactoring 에서 한결같이 추구했던 "의도를 명확하게"라는 부분을 Refactoring이라는 도구에 끼워맞추다보니 의도를 불명확하게 한 결과를 낳은것 같다. (["망치의오류"])
         위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로 호출하는게 맞을 듯 하다.
         하지만 이것도 임시 방편일뿐, '''위험은 존재한다'''. lastUsage()의 값이 Integer.MIN_VALUE 이거나, Integer.MAX_VALUE 라면? (이런일이 결코 일어날 수 없다고 장담할 수 있는가?)
          * 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
         로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
          * 예제 코드로 적절했느냐 - 좀 더 쉽게 의도에 맞게 Refactoring 되어진 것이 이 예제 바로 전인 Raise 이긴 하지만. 그리 좋은 예는 아닌듯 하다. usageInRange 로 빼내기 위해 약간 일부러 일반화 공식을 만들었다고 해야 할까요. 그 덕에 코드 자체만으로 뜻을 이해하기가 좀 모호해졌다는 부분에는 동감.
          * ["Refactoring"]의 Motivation - Pattern 이건 Refactoring 이건 'Motivation' 부분이 있죠. 즉, 무엇을 의도하여 이러이러하게 코드를 작성했는가입니다. Parameterize Method 의 의도는 'couple of methods that do similar things but vary depending on a few values'에 대한 처리이죠. 즉, 비슷한 일을 하는 메소드들이긴 한데 일부 값들에 영향받는 코드들에 대해서는, 그 영향받게 하는 값들을 parameter 로 넣어주게끔 하고, 같은 일을 하는 부분에 대해선 묶음으로서 중복을 줄이고, 추후 중복이 될 부분들이 적어지도록 하자는 것이겠죠. -- 석천
         > { Refactoring(by Martin Fowler)의 잘못된 refactoring }
         > 위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로
         > lastUsage()의 값이 Integer.MIN_VALUE 이거나, Integer.MAX_VALUE 라면?
  • SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 14 matches
         Encoding is inevitable in programming. At some point you say, "Here is some information. How am I going to represent it?" This decision to encode information happens a hundred times a day.
         Back in the days when data was separated from computation, and seldom the twain should meet, encoding decisions were critical. Any encoding decision you made was propagated to many different parts of the computation. If you got the encoding wrong, the cost of change was enormous. The longer it took to find the mistake, the more ridiculous the bill.
         과거로 돌아가서 데이타가 연산으로부터 불리되었을 때, 그리고 종종 그 둘이 만나야 했을 때, 인코딩 결정은 중대한 것이었다. 너의 어떠한 인코딩 결정은 연산의 많은 다른 부분들을 점차적으로 증가시켜나아갔다. 만약 잘못된 인코딩을 한다면, 변화의 비용은 막대하다. The longer it took to find the mistake, the more ridiculous the bill.
         Objects change all this. How you distribute responsibility among objects is the critical decision, encoding is a distant second. For the most part, in well factored programs, only a single object is interested in a piece of information. That object directly references the information and privately performs all the needed encoding and decoding.
         Sometimes, however, information in one object must influence the behavior of another. When the uses of the information are simple, or the possible choices based on the information limited, it is sufficient to send a message to the encoded object. Thus, the fact that boolean values are represented as instances of one of two classes, True and False, is hidden behind the message #ifTrue:ifFalse:.
         We could encode boolean values some other way, and as long as we provided the same protocol, no client would be the wiser.
         Sets interact with their elements like this. Regardless of how an object is represented, as long it can respond to #=and #hash, it can be put in a Set.
         Sometimes, encoding decisions can be hidden behind intermediate objects. And ASCII String encoded as eight-bit bytes hides that fact by conversing with the outside world in terms of Characters:
         String>>at: anInteger
          ^Character asciiValue: (self basicAt: anInteger)
         When there are many different types of information to be encoded, and the behavior of clients changes based on the information, these simple strategies won't work. The problem is that you don't want each of a hundred clients to explicitly record in a case statement what all the types of information are.
         For example, consider a graphical Shape represented by a sequence of line, curve, stroke, and fill commands. Regardless of how the Shape is represented internally, it can provide a message #commandAt: anInteger that returns a Symbol representing the command and #argumentsAt: anInteger that returns an array of arguments. We could use these messages to write a PostScriptShapePrinter that would convert a Shape to PostScript:
         PostScriptShapePrinter>>display: aShape
          command = #line if True:
          printPoint: (arguments at: 1);
          printPoint: (arguments at: 2);
          nextPutAll:'line'].
         Every client that wanted to make decisions based on what commands where in a Shape would have to have the same case statement, violating the "once and only once" rule. We need a solution where the case statement is hidden inside of the encoded objects.
         * ''Have the client send a message to the encoded object. PAss a parameter to which the encoded object will send decoded messages.''
         The simplest example of this is Collection>>do:. By passing a one argument Block(or any other object that responds to #value:), you are assured that the code will work, no matter whether the Collection is encoded as a linear list, an array, a hash table, or a balanced tree.
  • TFP예제/WikiPageGather . . . . 14 matches
         집에서 모인모인을 돌리다가 전에 생각해두었었던 MindMap 이 생각이 났다. Page간 관계들에 대한 Navigation을 위한. 무작정 코딩부터 하려고 했는데 머릿속에 정리가 되질 않았다. 연습장에 이리저리 쓰고 그리고 했지만. -_-; '너는 왜 공부하고 실천을 안하는 것이야!' 공부란 머리로 절반, 몸으로 절반을 익힌다. 컴공에서 '백견이 불여일타' 란 말이 괜히 나오는 것은 아니리라.
          * '생각할 수 있는 가장 단순한 것부터 생각하라.' 디자인은 TFP 와 Refactoring의 과정만으로 어느정도 보장이 된다. TFP을 추구하는 이상 기능와 의도에 의한 모듈화가 기본적으로 이루어진다. (여태껏의 경험 -- 그래봤자 3번째지만 -- 에 의하면, TFP를 하면서 LongMethod 냄새가 난 적이 없었다. (LongMethod와 Bad Smell 에 대해서는 BadSmellsInCode를 참조하라.) 만일 중복코드 등의 문제가 발생하더라도 기존의 막무가내식 방식에 비해 그 빈도가 적다. 만일 Bad Smell 이 난다면 ["Refactoring"] 을 하면 된다. (참고로 밑의 소스는 ["Refactoring"]의 과정은 거치지 않았다.)
         === WikiPageGatherTestCase.py ===
         from WikiPageGather import *
         class WikiPageGatherTestCase (unittest.TestCase):
          self.pageGather = WikiPageGather ()
          self.pageGather = None
          def testConvertWikiPageNameToMoinFileName (self):
          self.assertEquals (self.pageGather.WikiPageNameToMoinFileName ('''한글테스트'''), '''_c7_d1_b1_db_c5_d7_bd_ba_c6_ae''')
          self.assertEquals (self.pageGather.WikiPageNameToMoinFileName ("FrontPage"), "FrontPage")
          self.pageGather.SetPage ("FrontPage")
          self.assertEquals (self.pageGather.GetPageNamesFromPage (), ["LearningHowToLearn", "ActiveX", "Python", "XPInstalled", "TestFirstProgramming", "한글테스트", "PrevFrontPage"])
          def testGetPageNamesFromString (self):
          strings = "Test First In TestFirstIn TesF TestFi guuweo StringIn"
          self.assertEquals (self.pageGather.GetPageNamesFromString (strings), ["TestFirstIn", "TestFi", "StringIn"])
          strings = '''["Testing"] ["Testing The Program"] higu TestFirst twet'''
          self.assertEquals (self.pageGather.GetPageNamesFromString (strings), ["Testing", "Testing The Program", "TestFirst"])
          def testIsHeadTagLine (self):
          strings = "== testing =="
          self.assertEquals (self.pageGather.IsHeadTagLine (strings), 1)
  • TheKnightsOfTheRoundTable . . . . 14 matches
         [http://online-judge.uva.es/p/v101/10195.html 원문보기]
         === TheKnightsOfTheRoundTable ===
         === Input ===
         {{| The radius of the round table is: r |}}
         === Sample Input ===
         {{| The radius of the round table is: 2.828 |}}
         || 하기웅 || C++ || 1시간 || [TheKnightsOfTheRoundTable/하기웅] ||
         || 김상섭 || C++ || 엄청 || [TheKnightsOfTheRoundTable/김상섭] ||
         || 문보창 || C++ || 10분 || [TheKnightsOfTheRoundTable/문보창] ||
         || 허준수 || C++|| ? || [TheKnightsOfTheRoundTable/허준수] ||
  • TugOfWar/강희경 . . . . 14 matches
         def InputTestCaseNumber():
          n = input('TestCaseNumber: ')
          print '----'
         def InputPeopleNumber():
          n = input('PeopleNumber: ')
         def InputTheWeight(aN):
          for i in range(0, aN):
          list.append(input('Weight: '));
         def MakeTwoTeams(aInfoTuple):
          for i in range(0, aInfoTuple[1]):
          b += aInfoTuple[0][aInfoTuple[1]-1-i]
          a += aInfoTuple[0][aInfoTuple[1]-1-i]
         if __name__ == '__main__':
          testCaseNumber = InputTestCaseNumber()
          for i in range(0, testCaseNumber):
          print MakeTwoTeams(InputTheWeight(InputPeopleNumber()))
          print '----'
  • 김재현 . . . . 14 matches
         == Intro ==
         #include <stdio.h>
         #include <stdlib.h>
         #include <time.h>
         #define COUNT 6 // 당첨번호개수
         #define MAX 45 // 1-45
         #define TITLE "[ LOTTO RANDOM NUMBER GENERATOR ]\n"
         int main()
          int i;
          printf(TITLE);
          printf("=================================\n");
          printf("Enter the game count: ");
          printf("=================================\n");
          printf("game %2d: ", i+1);
          printf("%2d ", n+1);
          printf("\n"); // 한 set 완료
         #include <stdio.h>
         int ThreeNOne(int aInput);
         int ThreeNOneTwoNum(int aInput, int aInput2);
         int num1, num2, cycle_length;
  • 오목/민수민 . . . . 14 matches
         // sampleView.h : interface of the CSampleView class
         #if !defined(AFX_SAMPLEVIEW_H__7D3F7617_AE70_11D7_A975_00010298970D__INCLUDED_)
         #define AFX_SAMPLEVIEW_H__7D3F7617_AE70_11D7_A975_00010298970D__INCLUDED_
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          int count;
          int board[20][20];
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
          afx_msg void OnMouseMove(UINT nFlags, CPoint point);
          int win;
          int cnt;
          int y;
          int x;
         #ifndef _DEBUG // debug version in sampleView.cpp
         inline CSampleDoc* CSampleView::GetDocument()
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_SAMPLEVIEW_H__7D3F7617_AE70_11D7_A975_00010298970D__INCLUDED_)
  • 오목/재선,동일 . . . . 14 matches
         // singleView.h : interface of the CSingleView class
         #if !defined(AFX_SINGLEVIEW_H__E826914F_AE74_11D7_8B87_000102915DD4__INCLUDED_)
         #define AFX_SINGLEVIEW_H__E826914F_AE74_11D7_8B87_000102915DD4__INCLUDED_
         class CSingleView : public CView
          int arr[100][100];
          int i,j;
          int x,y;
          int a,b;
          int count,count1,count2;
          CSingleView();
          DECLARE_DYNCREATE(CSingleView)
          CSingleDoc* GetDocument();
          //{{AFX_VIRTUAL(CSingleView)
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual ~CSingleView();
          //{{AFX_MSG(CSingleView)
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  • 토이/숫자뒤집기/김정현 . . . . 14 matches
         임의의 int 변수를 받아서 그것의 역순을 다시 int 로 리턴
         public int reverseNo1(int num) {
          int input = num;
          int reversed= 0;
          final int scale= 10;
          while(input%scale>0) {
          reversed = reversed + input%scale;
          input /= scale;
         public int reverseNo2(int num) {
          String input= String.valueOf(num);
          char[] reversedChar= new char[input.length()];
          for(int i=0;i<input.length();i++) {
          reversedChar[input.length-i-1]= input.charAt(i);
          return Integer.parseInt(new String(reversedChar));
         public int reverseNo3(int num) {
          char[] numChars= String.valueOf(num).toCharArray();
          int range= numChars.length;
          for(int i=0;i<range/2;i++) {
          String stringNum= new String(numChars);
          return Integer.parseInt(stringNum);
  • AcceleratedC++/Chapter8 . . . . 13 matches
         = Chapter 8 Writing generic functions =
         WikiPedia:Generic_function : 함수의 호출시 인자 타입이나 리턴타입을 사용자가 알 수없다. ex)find(B,E,D)
          union(A:string, " is...") (O), concaternate("COL", " is...") (X)}}}
         #define GUARD_median_h
         #include <algorithm>
         #include <stdexcept>
         #include <vector>
         using std::domain_error;
         using std::sort;
         using std::vector;
          throw domain_error("median of an empty vector");
          sort(v.begin(), v.end());
          return size % 2 == 0 ? (v[mid] + v[mid-1]) / 2 : v[mid]; // double, int에는 유효, string은 operator / 가 없기 때문에 무효
          || find(B, E, D) || D의 인자료 [B, E)를 비교하여 값을 찾는다. 비교를 하는 것은 크게 문제되지 않는다. ||
          {{{~cpp ex) accumulate(v.begin(), v.end(), 0.0); // 만약 0:int를 사용했다면 올바른 동작을 보장할 수 없다.}}}
         == 8.2 Data-structure independence ==
          || find(c.begin(), c.end(), val) || 일반적인 함수의 작성 가능. 반복자를 통해서 반복자가 제공하는 방식으로 동작가능 ||
          || c.find(val) || 특정형의 인스턴스인 c를 통해서만 접근가능. 내장배열에 적용 불가능 ||
          || find(c, val) || 범위 지정이 불가능하고, 유용성이 첫번째의 경우보다 적다. ||
          * 1의 방식으로 작성된 함수으이 rbegin() 같은 템플릿 멤버 함수를 이용해서 역순 검색도 가능하게 작성된다.
  • CheckTheCheck/곽세환 . . . . 13 matches
         toupper를 쓰려면 ctype.h를 include해야한다.
         #include <iostream>
         using namespace std;
         #include <ctype.h>
         const int EMPTY = 0;
         const int BLACK = 1;
         const int WHITE = 2;
         int whereSide(int y, int x)
         bool isInBoard(int y, int x)
         bool PawnCheck(int y, int x, int side)
          if (isInBoard(y - 1, x - 1) && board[y - 1][x - 1] == 'p')
          else if (isInBoard(y - 1, x + 1) && board[y - 1][x + 1] == 'p')
          if (isInBoard(y + 1, x - 1) && board[y + 1][x - 1] == 'P')
          else if (isInBoard(y + 1, x - 1) && board[y + 1][x + 1] == 'P')
         bool RookCheck(int y, int x, int side)
          int move[4][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
          int i, k;
          for (i = 1; i <= 7 && isInBoard(y + i * move[k][0], x + i * move[k][1]); i++)
          continue;
         bool BishopCheck(int y, int x, int side)
  • DebuggingSeminar_2005/AutoExp.dat . . . . 13 matches
         = step into ? -_-;; =
         ; AutoExp.Dat - templates for automaticially expanding data
         ; While debugging, Data Tips and items in the Watch and Variable
         ; windows are automatically expanded to show their most important
         ; elements. The expansion follows the format given by the rules
         ; in this file. You can add rules for your types or change the
         ; predefined rules.
         ; For good examples, read the rules in this file.
         ; To find what the debugger considers the type of a variable to
         ; be, add it to the Watch window and look at the Type column.
         ; An AutoExpand rule is a line with the name of a type, an equals
         ; sign, and text with replaceable parts in angle brackets. The
         ; part in angle brackets names a member of the type and an
         ; AutoExpand rules use the following syntax. The equals sign (=),
         ; brackets ([]) indicate optional items.
         ; type Name of the type (may be followed by <*> for template
         ; types such as the ATL types listed below).
         ; text Any text.Usually the name of the member to display,
         ; or a shorthand name for the member.
         ; format Watch format specifier. One of the following:
  • DesignPatternsAsAPathToConceptualIntegrity . . . . 13 matches
         원문 : http://www.utdallas.edu/~chung/patterns/conceptual_integrity.doc
         Design Patterns as a Path to Conceptual Integrity
         During our discussions about the organization of design patterns there was a comment about the difficulty of identifying the “generative nature” of design patterns. This may be a good property to identify, for if we understood how design patterns are used in the design process, then their organization may not be far behind. Alexander makes a point that the generative nature of design patterns is one of the key benefits. In practice, on the software side, the generative nature seems to have fallen away and the more common approach for using design patterns is characterized as “when faced with problem xyz…the solution is…” One might say in software a more opportunistic application of design patterns is prevalent over a generative use of design patterns.
         The source of this difference may be the lack of focus on design patterns in the design process. In fact, we seldom see discussions of the design process associated with design patterns. It is as though design patterns are a tool that is used independent of the process. Let’s investigate this further:
         A comment from Carriere and Kazman at SEI is interesting: “What Makes a Good Object Oriented Design?”
         · The existence of an architecture, on top of any object/class design
         · The internal regularity (….or conceptual integrity) of the architectural design
          아키텍쳐 디자인의 내부적 정규성(또는 ConceptualIntegrity)
         This is what Brooks wrote 25 years ago. "… Conceptual integrity is the most important consideration in system design."[Brooks 86] He continues: “The dilemma is a cruel one. For efficiency and conceptual integrity, one prefers a few good minds doing design and construction. Yet for large systems one wants a way to bring considerable manpower to bear, so that the product can make a timely appearance. How can these two needs be reconciled?”
         이는 Brooks 가 25년 전에 쓴 말이다. "ConceptualIntegrity 는 시스템 디자인에서 가장 중요한 일이다." 그는 계속 말한다. "이 딜레마는 잔인한 것이다. 효율성과 개념적 완전성중 혹자는 디자인과 구축을 하는 것을 선호할 것이다. 큰 시스템에 대해 혹자는 책임을 맡을 중요한 맨 파워를 가져올 방법을 원할 것이다. 그래서 프로덕트는 적시에 출현할 것이다. 어떻게 이 두 필요요소들이 조화를 이룰 거인가?
         One approach would be to identify and elevate a single overriding quality (such as adaptability or isolation of change) and use that quality as a foundation for the design process. If this overriding quality were one of the goals or even a specific design criteria of the process then perhaps the “many” could produce a timely product with the same conceptual integrity as “a few good minds.” How can this be accomplished and the and at least parts of the “cruel dilemma” resolved?
         The following summary is from “Design Patterns as a Litmus Paper to Test the Strength of Object-Oriented Methods” and may provide some insight:
         http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps
         1. Some O-O design methodologies provide a systematic process in the form of axiomatic steps for developing architectures or micro-architectures that are optimality partitioned (modularized) according to a specific design criteria.
         2. The following methodologies are listed according to their key design criteria for modularization:
         a. Booch in OOSE relies heavily on expert designers and experience to provide the system modularization principle.
         OOSE 의 Booch 는 system modularization principle 을 제공하기 위해 전문가 디자이너와 경험에 매우 의존적이다.
         b. OMT, Coad-Yourdon, Shaer-Mellor are data driven and as such raise data dependency as the system modularization principle.
         OMT, Coad-Yourdon, Shaer-Mellor 의 경우 data driven 이며, system modularization principle 로서 데이터 의존성을 들었다.
         c. Wirfs-Brock with Responsibility Driven Design (RDD) raises contract minimization as the system modularization principle.
  • Gof/Visitor . . . . 13 matches
         == Intent ==
         [컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
         http://zeropage.org/~reset/zb/data/visit006.gif <- [DeadLink]
         이 다이어그램은 Node class 계층구조의 일부분을 보여준다. 여기서의 문제는 다양한 node class들에 있는 이러한 operation들의 분산은 시스템으로 하여금 이해하기 어렵고, 유지하거나 코드를 바꾸기 힘들게 한다. Node 에 type-checking 코드가 pretty-printing code나 flow analysis code들과 섞여 있는 것은 혼란스럽다. 게다가 새로운 operation을 추가하기 위해서는 일반적으로 이 클래스들을 재컴파일해야 한다. 만일 각각의 새 operation이 독립적으로 추가될 수 있고, 이 node class들이 operation들에 대해 독립적이라면 더욱 좋을 것이다.
         예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
         type-checking 의 기능을 넘어 일반적인 visitor를 만들기 위해서는 abstract syntax tree의 모든 visitor들을 위한 abstract parent class인 NodeVisitor가 필요하다. NodeVisitor는 각 node class들에 있는 operation들을 정의해야 한다. 해당 프로그램의 기준 등을 계산하기 원하는 application은 node class 에 application-specific한 코드를 추가할 필요 없이, 그냥 NodeVisitor에 대한 새로운 subclass를 정의하면 된다. VisitorPattern은 해당 Visitor 와 연관된 부분에서 컴파일된 구문들을 위한 operation들을 캡슐화한다.
         http://zeropage.org/~reset/zb/data/visit113.gif <- [DeadLink]
         http://zeropage.org/~reset/zb/data/visit112.gif <- [DeadLink]
          - declares a Visit operations for each class of ConcreteElement in the object structure. The operation's name and signature identifies the class that sends the Visit request to the visitor. That lets the visitor determine the concrete class of the element being visited. Then the visitor can access the element directly through its particular interface.
          * ConcreteVisitor (TypeCheckingVisitor)
          - implements each operation declared by Visitor. Each operation implements a fragment of the algorithm defined for the corresponding class of object in the structure. ConcreteVisitor provides the context for the algorithm and stores its local state. This state often accumulates result during the traversal of the structure.
          - defines an Accept operation that takes a visitor as an argument.
          - may provide a high-level interface to allow the visitor to visit its elements. [[BR]]
          - may either be a composite (See CompositePattern) or a collection such as a list or a set. [[BR]]
          // and so on for other concrete elements
          // and so on for other concrete subclasses of Equipment
         class PricingVisitor : public EquipmentVisitor {
          PricingVisitor ();
         void PricingVisitor::VisitFloppyDisk (FloppyDisk* e) {
         void PricingVisitor::VisitChassis (Chassis* e) {
  • TFP예제/Omok . . . . 13 matches
          for i in range (0,19):
          for j in range (0,19):
          def testIsExistDolInPosition (self):
          self.assertEquals (self.dolboard.IsExistDolInPosition(1,1),1)
          self.assertEquals (self.dolboard.IsExistDolInPosition(3,6),0)
          def testPrintEmptyBoard (self):
          self.assertEquals (self.dolboard.Print(), '''+++++++++++++++++++
          def testIsExistDolInPosition (self):
          self.assertEquals (self.omok.IsExistDolInPosition (2,2),1)
          self.assertEquals (self.omok.IsExistDolInPosition (0,0),1)
          self.assertEquals (self.omok.IsExistDolInPosition (16,16),0)
          def testFirstDolIsBlackInStart (self):
          def __init__(self):
          for i in range (0,19):
          for j in range (0,19):
          def IsExistDolInPosition (self,x,y):
          def Print (self):
          PrintString = ''
          for i in range (0,19):
          for j in range (0,19):
  • [Lovely]boy^_^/EnglishGrammer/PresentAndPast . . . . 13 matches
         == Unit 1. Present Continuous (I am doing) 현재 진행형 ==
          A. Am/is/are + ~ing : Present Continuous
          ex) Ann is in her car. She is on her way to work. she is driving to work.
          This means) She is driving now, at the time of speaking. The action is not finished.
          B. I am doing something = I'm in the middle of doing something; I've started doing it and I haven't finished yet.
          Often the action is happening at the time of speaking.
          ex) Let's go out now. It isn't raining anymore.
          But the action is not necessarily happening at the time of speaking.
          ex) I'm reading an interesting book at the moment. I'll lend it to you when I've finished it.
          This means) Tom is not reading the book at the time of speaking.
          He means that he has started it but has not finished it yet. He is in the middle of reading it.
          C. We use the present continuous when we talk about things happening in a period around now. (today / this week / tonight, etc..)
          ex) "Is Sarah working this week?"
          We use the present contunuous when we talk about changes happening now or around now.
          ex) The population of the world is rising very fast.
          A. ex) Alex is a bus driver, but now he is in bed asleep.
          This Means) He is not driving a bus. but He drives a bus.
          B. We use the simple present to talk about things in general. We use it to say that something happens all the time
          or repeateldy or that something is true in general. It is not important whether the action is happening at the time of speaking
          In the following examples do is also the main verb( do가 메인 동사로 쓰일때도 있다. )
  • [Lovely]boy^_^/USACO/WhatTimeIsIt? . . . . 13 matches
         #include <iostream>
         #include <fstream>
         #include <string>
         #include <map>
         using namespace std;
         ifstream fin("clock.in");
         int StringConvertToInt(const string& str);
         int CharToInt(char ch);
         int Jegob(int c, int e);
         void InputInitData(int& h, int& m);
         void OutputData(int&h, int& m);
         string Upcase(const string& str);
         map<int,string> table;
         int main()
          int hour, min;
          InputInitData(hour, min);
          OutputData(hour, min);
         void OutputData(int& hour, int& min)
          if(min >= 45)
          fout << Upcase(table[60-min]) << " to " << table[hour+1];
  • 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김수경 . . . . 13 matches
         using System;
         using System.Collections.Generic;
         using System.ComponentModel;
         using System.Data;
         using System.Drawing;
         using System.Linq;
         using System.Text;
         using System.Windows.Forms;
          InitializeComponent();
          public int hour;
          public int minute;
          public int second;
          public int milli;
          tickMinute();
          private void tickMinute()
          if (++minute == 60)
          minute = 0;
          hour.Text = string.Format("{0:D2}", time.hour);
          minute.Text = string.Format("{0:D2}", time.minute);
          second.Text = string.Format("{0:D2}", time.second);
  • 오목/인수 . . . . 13 matches
          final static int EMPTY = 0;
          int width, height;
          int boardState[][];
          public Board(int width, int height) {
          boardState = new int[height][width];
          public int getState(int x, int y) {
          public void putStone(int turn, int x, int y) {
          public boolean isInBoard(int x, int y) {
          public boolean isSameStone(int turn, int x, int y) {
          return isInBoard(x, y) && getState(x, y) == turn;
          for(int i = 0 ; i < width ; ++i)
          for(int j = 0 ; j < height ; ++j)
          public void clearStone(int x, int y) {
          final static int BLACK = 1;
          final static int WHITE = 2;
          final static int WANTED = 5;
          int curTurn;
          public Omok(int width, int height) {
          private int commonCheck(int x, int y, int wanted,
          int dX1, int dX2, int dY1, int dY2) {
  • 최대공약수/문보창 . . . . 13 matches
         import java.math.BigInteger;
          public static void main(String[] args)
          Scanner input = new Scanner(System.in);
          BigInteger bigInteger1, bigInteger2, gcdNum;
          bigInteger1 = input.nextBigInteger();
          bigInteger2 = input.nextBigInteger();
          gcdNum = bigInteger1.gcd(bigInteger2);
          System.out.println("The GCD of " + bigInteger1 + " and " + bigInteger2 + " is " + gcdNum);
  • 프로그래밍/장보기 . . . . 13 matches
         public class Shopping {
          public static int processOneCase(int num) {
          String line = null;
          String [] contents;
          for(int i = 0; i < num; i++) {
          line = br.readLine();
          e.printStackTrace();
          contents = line.split(" ");
          int price = Integer.parseInt(contents[1]);
          int weight = Integer.parseInt(contents[0]);
          double minRate = rates[0][0];
          int minRateIndex = 0;
          for(int i = 1; i < num; i++) {
          if (rates[i][0] < minRate) {
          minRate = rates[i][0];
          minRateIndex = i;
          else if (rates[i][0] == minRate) {
          if (rates[i][1] < rates[minRateIndex][1]) {
          minRate = rates[i][0];
          minRateIndex = i;
  • 5인용C++스터디/키보드및마우스의입출력 . . . . 12 matches
         #include <windows.h>
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         HINSTANCE g_hInst;
         int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
          ,LPSTR lpszCmdParam,int nCmdShow)
          g_hInst=hInstance;
          WndClass.hInstance=hInstance;
          hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
          NULL,(HMENU)NULL,hInstance,NULL);
          ShowWindow(hWnd,nCmdShow);
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
          PAINTSTRUCT ps;
          int len;
          InvalidateRect(hWnd,NULL,FALSE);
          case WM_PAINT:
          hdc=BeginPaint(hWnd,&ps);
          EndPaint(hWnd,&ps);
          return(DefWindowProc(hWnd,iMessage,wParam,lParam));
          소스를 입력한 후 실행해 보자. 키보드에서 키를 누르면 입력한 문자들이 화면 상단에 출력될 것이다.WndProc을 보면 우선 문자열 str이 선언되어 있으며 이 문자열 변수에 사용자가 입력한 문자들을 모은다. 단 이 변수는 WndProc에 선언되어 있는 지역변수이므로 그냥 선언하면 메시지가 발생할 때마다 초기화되기 때문에 static을 붙여 정적변수로 만들어 두어야 한다. 아니면 아예 WinMain 함수 이전에 선언하여 전역 변수로 만들어 두어도 된다.
          입력된 문자들을 바로 바로 출력하지 않고 반드시 문자열에 모아 두어야 하는 이유는 키보드 입력이 발생하는 시점과 문자열을 출력해야 할 시점이 분리되어 있기 때문이다. 키보드 입력 시점은 키보드 메시지인 WM_CHAR가 발생했을 때이며 이 메시지에서 문자열을 조립하기만 하고 문자열의 출력은 WM_PAINT에서 처리한다. 물론 WM_CHAR 메시지에서 문자열을 바로 바로 출력하는 것도 가능하기는 하지만 윈도우즈 프로그램은 화면을 다시 그릴 준비를 항상 해 두어야 하며 모든 출력은 WM_PAINT에서 하도록 되어 있다. 그렇지 않으면 출력된 문자들이 지워지면 다시 복구되지 않는다.
  • EffectiveC++ . . . . 12 matches
         == Shifting from C to C++ ==
         === Item1: Prefer const and inline to #define ===
         DeleteMe #define(preprocessor)문에 대해 const와 inline을(compile)의 이용을 추천한다. --상민
         [#define -> const][[BR]]
          #define ASPECT_RATIO 1.653
         instead of upper..
         define 된 ASPECT_RATIO 란 상수는 1.653으로 변경되기때문에 컴파일러는 ASPECT_RATIO 란것이 있다는 것을 모르고 symbol table 에?들어가지 않는다. 이는 debugging을 할때 문제가 발생할 수 있다. -인택
         1. 상수 포인터(constant pointer)를 정의하기가 다소 까다로워 진다는 것.
          static const int NUM_TURNS = 5; // 상수 선언! (선언만 한것임)
          int scores[NUM_TURNS]; // 상수의 사용.
          const int GamePlayer::NUM_TURNS; // 정의를 꼭해주어야 한다.
         #define -> inline (매크로 사용시)
          * inline: 함수 호출로 인한 오버헤드를 줄일수 있는.. 거시기. 궁금하면 책찾아보세요.
          #define max(a,b) ((a) > (b) ? (a) : (b))
          // #define 을 inline으로..
          inline int max(int a, int b) { return a > b ? a : b; } // int형으로만 제한 되어있네..
          inline const T& max (const T& a, const T& b) { return a > b ? a : b; }
         const와 inline을 쓰자는 얘기였습니다. --; 왜 그런지는 아시는 분께서 글좀 남기시구요. ^^[[BR]]
         #define 문을 const와 inline으로 대체해서 써도, #ifdef/#ifndef - #endif 등.. 이와 유사한 것들은 [[BR]]
          매크로는 말 그대로 치환이기 때문에 버그 발생할 확률이 높음. 상수선언이나 함수선언같은 경우는 가급적 const 나 inline으로 대체하는게 좋겠지. (으.. 그래도 실제로 짤때는 상수 선언할때는 #define 남용 경향이..[[BR]]
  • Gnutella-MoreFree . . . . 12 matches
         == The Gnutella Protocol Document ==
         The Gnutella Protocol Document
          {{{~cpp Connection String : GNUTELLA CONNECTION/<version>/nn}}}
         || ping || 네트워크상의 호스트를 찾을 때 쓰인다. Payload가 없기 때문에 header의 Payload_Length = 0x00000000 로 설정된다. ||
         || pong || Ping을 받으면 주소와 기타 정보를 포함해 응답한다.Port / IP_Address / Num Of Files Shared / Num of KB Shared** IP_Address - Big endian||
         || query ||네트워크상에서 검색에 쓰이고 검색 Minimum Speed ( 응답의 최소 속도 ), Search Criteria 검색 조건 ||
         || queryHit || 검색 Query 조건과 일치한 경우 QueryHit로 응답한다. Num Of Hits 조건에 일치하는 Query의 결과 수 Port / IP_Address (Big-endian) / Speed / Result Set File Index ( 파일 번호 ) File Size ( 파일 크기 )File Name ( 파일 이 / 더블 널로 끝남 ) Servent Identifier 응답하는 Servent의 고유 식별자 Push 에 쓰인다. ||
         || push || 방화벽이 설치된 Servent와의 통신을 위한 DescriptorServent Identifier / File Index / IP_Address(Big-endian)/Port ||
          1. Pong 은 Ping이 왔던 같은 길을 따라 전송된다. 만약 DescriptorID가 n
          인 Pong을 받았는 데 Descriptor ID가 n인 Ping 보지 못했다면 Ping을 보
          4. 전달 되었던 Ping과 Query를 제외하고 모든 Ping과 Query는 연결 된
          GET/get/<File Index>/<File Name>/HTTP/1.0rn
          <File Index>는 파일 번호이고 이는 QueryHit Result에 포함된 내용이다.
          Content-type:application/binaryrn
          GIV<File Index>:<Severnt Identifier>/<File Name>nn 를 보내 파일
          GET/get/<File Index>/<File Name>/HTTP1.0rn
          GnutellaPacket packet_Header / packet_Ping / packet_Pong
         CVS// http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/gnucleus/(최근의 소스코드)
         int nItem = m_lstResults.GetNextSelectedItem(pos);
         // Add hosts to the download list
  • JavaScript/2011년스터디/URLHunter . . . . 12 matches
         [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보자!!
          var maintimer=null;
          function init(){
          if(maintimer==null){
          maintimer=setInterval("gametimer();", 1000);
          clearInterval(maintimer);
          maintimer=null;
          <body onload="init();" onkeydown="keyevent();">
          <input type="button" value="pause" onclick="pause();"/>
          * The Hunter.html
          <title>The Hunter</title>
          You should kill all the monsters.<br>
          Your gun point is 'O' and Others are Monsters.
          setInter = setInterval("URLChange();",100);
         var CrtURL = (document.URL.indexOf('#') == -1)? document.URL+'#': document.URL.slice(0,document.URL.indexOf('#')+1);
          clearInterval(setInter);
          location.href = CrtURL + " You caught \'" + map.r.join('') + "\'";
          alert("Press F5 to play again");
          location.href = CrtURL + " "+timer.t +"|" + map.s.join('') + "|"+timer.t + " You caught \'" + map.r.join('') + "\'";
         document.onkeydown = KeyInput;
  • LearningToDrive . . . . 12 matches
         I can remeber clearly the day I first began learning to drive. My mother and I were driving up Interstate 5 near Chico, California, a horizon. My mom had me reach over from the passenger seat and hold the steering wheel. She let me get the feel of how motion of the wheel affected the dirction of the car. Then she told me, "Here's how you drive. Line the car up in the middle of the lane, straight toward the horizon."
         I very carefully squinted straight down the road. I got the car smack dab in the middle of the lane, pointed right down the middle of the road. I was doing great. My mind wandered a little...
         I jerked back to attention as the car hit the gravel. My mom (her courage now amazes me) gently got the car back straight on the road. The she actually taught me about driving. "Driving is not about getting the car goint in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way."
         This is the paradigm for XP. There is no such thing as straight and level. Even if things seem to be going perfectly, you don't take your eyes off the road. Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.
         Everythings in software changes. The requirements change. The design changes. The business changes. The technology changes. The team changes. The team members change. The problem isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes.
         The driver of a software project is the customer. If the software doesn't do what they want it to do, you have failed. Of course, they don't know exactly what the software should do. That's why software development is like steering, not like getting the car pointed straight down the road. Out job as programmers is to give the customer a steering wheel and give them feedback about exactly where we are on the road.
         from "Learning To Drive - XP explained"
         안되는 영어로 읽고 있는 중인 XP Explained 중. (제대로 뜻을 이해한건지. -_-;)
         소프트웨어 개발을 운전을 배우는 것에 비유한 설명이 재미있네요. software project 의 Driver 는 customer 라는 말과.. Programmer 는 customer 에게 운전대를 주고, 그들에게 우리가 정확히 제대로 된 길에 있는지에 대해 feedback 을 주는 직업이라는 말이 인상적이여서. 그리고 customer 와 programmer 와의 의견이 수렴되어가는 과정이 머릿속으로 그려지는 것이 나름대로 인상적인중. 그리고 'Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.' 부분도.. 아.. 부지런해야 할 프로그래머. --;
         ["ExtremeProgramming"]
  • MoinMoinTodo . . . . 12 matches
         This is a list of things that are to be implemented. If you miss a feature, have a neat idea or any other suggestion, please put it on MoinMoinIdeas.
         To discuss the merit of the planned extensions, or new features from MoinMoinIdeas, please use MoinMoinDiscussion.
         A list of things that are added to the current source in CVS are on MoinMoinDone.
         MoinMoinRelease describes how to build a release from the SourceForge repository.
         Things to do in the near future:
          * add a nice progress page, while the dictionary cache is built
          * add a means to build the dict.cache file from the command line
          * Macro that lists all users that have an email address; a click on the user name sends the re-login URL to that email (and not more than once a day).
          * Send a timestamp with the EditPage link, and then compare to the current timestamp; warn the user if page was edited since displaying.
          * Now that we can identify certain authors (those who have set a user profile), we can avoid to create a backup copy if one author makes several changes; we have to remember who made the last save of a page, though.
          * Implement the update script (copying new images etc.) described elsewhere on this page or MoinMoinIdeas.
          * Replace SystemPages by using the normal "save page" code, thus creating a backup copy of the page that was in the system. Only replace when diff shows the page needs updating.
          * Send a regular "changes" mail? (checkbox, plus frequency setting hourly/daily/weekly/etc.)
          * Other things like color, icons, menu?
          * On request, send email containing an URL to send the cookie
          * Steal ideas from [http://www.usemod.com/cgi-bin/mb.pl?action=editprefs MeatBall:Preferences]
          * a CSS switch (needs more work on the formatter issue to really work)
          * MoinMoinRefactoring
          * create a dir per page in the "backup" dir; provide an upgrade.py script to adapt existing wikis
          * or go all the way, and store pages as data/pages/<firstletter>/<pagename>/(current|meta|...|<timestamp>)
  • MoreEffectiveC++/Techniques2of3 . . . . 12 matches
         == Item 29: Reference counting ==
         Reference counting(이하 참조 세기, 단어가 길어 영어 혼용 하지 않음)는 같은 값으로 표현되는 수많은 객체들을 하나의 값으로 공유해서 표현하는 기술이다. 참조 세기는 두가지의 일반적인 동기로 제안되었는데, '''첫번째'''로 heap 객체들을 수용하기 위한 기록의 단순화를 위해서 이다. 하나의 객체가 만들어 지는데, new가 호출되고 이것은 delete가 불리기 전까지 메모리를 차지한다. 참조 세기는 같은 자료들의 중복된 객체들을 하나로 공유하여, new와 delete를 호출하는 스트레스를 줄이고, 메모리에 객체가 등록되어 유지되는 비용도 줄일수 있다. '''두번째'''의 동기는 그냥 일반적인 생각에서 나왔다. 중복된 자료를 여러 객체가 공유하여, 비용 절약 뿐아니라, 생성, 파괴의 과정의 생략으로 프로그램 수행 속도까지 높이고자 하는 목적이다.
         class String { // 표준 문자열 형은 이번 아이템의 참조세기를 갖추고
          String(const char *value = "");
          String& operator=(const String& rhs);
         String a, b, c, d, e;
         String& String::operator=(const String& rhs)
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_1.gif
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_2.gif
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_185_1.gif
          === Implementing Reference Counting : 참조 세기 적용 ===
         참조 세기를 하는 String 클래스를 만드는건 어렵지는 않지만, 세세한 부분에 주목해서 어떻게 그러한 클래스가 구현되는지 주목해 보자. 일단, 자료를 저장하는 저장소가 있고, 참조를 셀수 있는 카운터가 있어야 하는데, 이 둘을 하나로 묶어서 StringValue 구조체로 잡는다. 구조체는 String의 사역(private)에 위치한다.[[BR]]
         class String {
          ... // String member들 위치
          struct StringValue { ... }; // 참조를 세는 인자와, String의 값을 저장.
          StringValue *value; // 위의 구조체의 값
         물론 이의 이름은 String과 다른 이름을 매겨야 하겠지만,(아마 RCString정도?) 하지만 String자체를 구현한다는 의미로 그냥 이름은 유지하고, 앞으로 말할 참조세기를 적용시킨 String 객체를 만들어 나가겠다.
         class String {
          struct StringValue {
          int refCount; // 참조를 세기위함 카운터
  • NUnit/C#예제 . . . . 12 matches
         using System;
         using System.IO;
         using NUnit.Framework;
          int actual = 3+2, expected = 5;
          int[] activeArray = {1,2,3};
          int[] nullArray = null;
          String fileName = "_________Test";
          FileInfo fileInfo = new FileInfo(fileName);
          FileStream fileStream = fileInfo.Create();
          FileInfo fileInfo = new FileInfo(fileName);
          fileInfo.Delete();
          FileInfo fileInfo = new FileInfo(fileName);
          Assertion.Assert(fileInfo.Exists);
          1. Command에는 설치한 NUnit 콘솔 프로그램의 경로를 적어준다.(예:C:\Program Files\NUnit 2.2\bin\nunit-console.exe)
          1. Argument에 {{{ $(ProjectDir)\bin\debug\$(TargetName).exe }}} 라고 적는다. ( 보통은 디버그 모드에서서 컴파일 하므로 폴더가 debug이다. 릴리즈인 경우에는 release로 바꾸면 될 듯)
          1. 이건 옵션이지만 Use Output Window를 선택하면 프로젝트 Output창으로 결과가 나온다.
          1. Show Command Containing 밑에 있는 박스에서 방금 추가한 실행도구를 선택한다. 이 때 명령의 이름이 나오지 않으므로 NUnit을 실행하는 것이 몇 번째 실행 명령(External Command)인지 알아두어야 한다. 처음 실행 도구를 추가했다면 아마 External Command8 일 것이다. (VS2005경우는 외부명령1이 첫번째 External Tools임)
  • RandomWalk2/ClassPrototype . . . . 12 matches
         #include <iostream>
         #include <assert.h>
         using namespace std;
         typedef struct __IntPair {
          int n1;
          int n2;
         } IntPair;
          int m_nMaxCol;
          int m_nMaxRow;
          IntPair m_nRoachPos;
          for (int i=0;i<100;i++) {
          for (int j=0;j<100;j++) {
          int boardArray[100][100];
          void setSize (int nCol, int nRow) {
          void printBoardStatus () {
          for (int i=0;i<m_nMaxRow;i++) {
          for (int j=0;j<m_nMaxCol;j++) {
          int isCheckedAllCells () {return 0; }
          void setRoachPosition(int nRow, int nCol) {
          IntPair getRoachPosition () {
  • ReadySet 번역처음화면 . . . . 12 matches
         Software development projects require a lot of "paperwork" in the form of requirements documents, design documents, test plans, schedules, checklists, release notes, etc. It seems that everyone creates the documents from a blank page, from the documents used on their last project, or from one of a handful of high-priced proprietary software engineering template libraries. For those of us who start from a blank page, it can be a lot of work and it is easy to forget important parts. That is not a very reliable basis for professional engineering projects.
          '''* What is the goal of this project?'''
         ReadySET is an open source project to produce and maintain a library of reusable software engineering document templates. These templates provide a ready starting point for the documents used in software development projects. Using good templates can help developers work more quickly, but they also help to prompt discussion and avoid oversights.
          '''* What are some key features that define the product?'''
          * High-quality outlines, sample text, and checklists.
          * Templates for many common software engineering documents. Including:
          '''*What makes this product different from others?'''
         This is an open source project that you are welcome to use for free and help make better. Existing packages of software engineering templates are highly costly and biased by the authorship of only a few people, by vendor-client relationships, or by the set of tools offered by a particular vendor.
         These templates are in pure XHTML with CSS, not a proprietary file format. That makes them easier to edit and to track changes using freely available tools and version control systems. The templates are designed to always be used on the web; they use hyperlinks to avoid duplicating information.
         The templates are not burdened with information about individual authorship or document change history. It is assumed that professional software developers will keep all project documents in version control systems that provide those capabilities.
         These templates are not one-size-fits-all and they do not attempt to provide prescriptive guidance on the overall development process. We are developing a broad library of template modules for many purposes and processes. The templates may be filled out in a suggested sequence or in any sequence that fits your existing process. They may be easily customized with any text or HTML editor.
          '''*What is the scope of this project?'''
         We will build templates for common software engineering documents inspired by our own exprience.
          '''*What are the high-level assumptions or ground rules for the project?'''
         I assume that the user takes ultimate responsibility for the content of all their actual project documents. The templates are merely starting points and low-level guidance.
          '''*What are we not going to do?'''
         This project does not attempt to provide powerful tools for reorganizing the templates, mapping them to a given software development process, or generating templates from a underlying process model. This project does not include any application code for any tools, users simply use text editors to fill in or customize the templates.
         Yes. It is part of the Tigris.org mission of promoting open source software engineering. It is also the first product in a product line that will provide even better support to professional software developers. For more information, see [http://www.readysetpro.com ReadySET Pro] .
          '''*What is the status of this project?'''
         These templates are based on templates originally used to teach software engineering in a university project course. They are now being enhanced, expanded, and used more widely by professionals in industry.
  • [Lovely]boy^_^/Diary/2-2-9 . . . . 12 matches
         == In Korean ==
          * 신촌 7시 민토신관 컴퓨터고전스터디 The Mythical Man Month Chapter 3&4
          * Power Reading, Methapors we live by 제본판 입수.
          * ["TheWarOfGenesis2R"] 시작
          * TheMythicalManMonth 5,6장 읽었다. 5장은 대충 감은 오는데.. 정확히는 무슨 내용인지 알수가 없다.--; 클났군.. 6장은 피곤해서 조금 읽다 말았다. 낼 일찍 일어나서 읽어야겠다.
         == In English ==
          * The computer classic study - The Mythical Man Month Chapter 3&4 - meeting is on today P.M. 7 O'clock, at SinChon Min.To.
          * I borrow the SmallTalk by Example.
          * I'll never type smalltalk digital clock example again.
          * I learned a moving bar techinique using timer from Sanghyup.
          * I add a missile skill to my arcanoid game, and now on refactoring.
          * I borrow the UML for beginner. Translator is Kwak Yong Jae.(His translation is very good)
          * 5:30 ZP Regular meeting.
          * I'll never advance arcanoid.--; It's bored. I'll end the refactoring instantly, and do documentaion.
          * My arcanoid running is not same any computer. Some computers are running this game very well, others are blinking screen, anothers are not able to move the bar.
          * I get Power Reading, and Methapors we live by BindingBook
          * ["TheWarOfGenesis2R"] Start
          * If my page is helpful to some person, It's very delightful. I feel that feeling these days.
          * I'll delight The AcceleratedC++, that I summary on wiki pages is helpful for beginner of C++.
          * I read the TheMythicalManMonth Chapter5,6. I feel chapter5's contents a bit.. I can't know precision contents.--; It's shit.. I read a chapter6 not much, because I'm so tired. I'll get up early tomorrow, and read chapter6.
  • whiteblue/만년달력 . . . . 12 matches
         #include <iostream>
         using namespace std;
         int addMonth[12] = {0,3,0,3,2,3,2,3,3,2,3,2}; // 월별 1일 위치 더해줘야 하는 날수
         int lastDayOfMonth[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
         int yearInput, monthInput, count = 0, dateNumber = 1 , locationOf1stDay, addm;
         int main()
          cin >> yearInput;
          cin >> monthInput;
          for (int x = 0 ; x < monthInput ; x++) // 1년 1일 위치
          locationOf1stDay = (addm + yearInput + count - 1 + 6) % 7; //
          if ( monthInput > 2 )
          locationOf1stDay = (addm + yearInput + count + 6 ) % 7; //
          for (int i = 0 ; i <= yearInput ; i++)
          cout << "\t\t" << yearInput << "년\t" << monthInput << "월 달력\n\n";
          for (int j = 1 ; j<=6 ; j++)
          for (int k = 0 ; k <= 6 ; k++)
          dateNumber > lastDayOfMonth[monthInput-1] ||
  • 현종이 . . . . 12 matches
          int m_nNumber, m_nKorean, m_nEnglish, m_nMath;
          int m_nTotal; //점수 합계를 나타냅니다.
          SungJuk(const char *name,int nNumber, int nKorean, int nEnglish, int nMath);
          int GetTotal(); //점수합계를 호출하는 매써드입니다.
          void PrintResult(); //결과를 출력합니다.
          void TopTotal_Print();
          void Top_Print(); //전체수석을 출력합니다.
          void TopKorean_Print(); //국어점수 수석을 출력합니다.
          void TopEnglish_Print(); //영어점수 수석을 출력합니다.
          void TopMath_Print(); //수학점수 수석을 출력합니다.
          void Input(int nNumber, char szName[], int nKorean, int nEnglish, int nMath);
         #include<iostream>
         using namespace std;
         #include<iostream> //strcpy()
         #include"SungJuk.h"
         int SungJuk::GetTotal()
         void SungJuk::PrintResult()
         void SungJuk::TopTotal_Print()
         void SungJuk::TopKorean_Print()
         void SungJuk::TopEnglish_Print()
  • .vimrc . . . . 11 matches
         set autoindent " 자동으로 들여쓰기를 한다.
         set bs=2 " allow backspacing over everything in insert mode
         set viminfo='20,"50 " read/write a .viminfo file, don't store more
         set ruler " show the cursor position all the time
         set incsearch
         let TE_WinWidth = 20 " TagExplorer 창크기 조절
         map <F3> [{v]}zf " file folding
         map <F4> zo " file unfolding
         map <C-F12> :make again<CR> " 모두 새로 빌드
         vnoremap <c-a> :IncN<CR>
         filetype indent on
         filetype plugin on
         au BufWinLeave *.py mkview " 보던 .py 파일의 예전 위치에 커서 위치시키기
         au BufWinEnter *.py silent loadview "
         au BufWinLeave *.c mkview " 보던 .c 파일의 예전 위치에 커서 위치시키기
         au BufWinEnter *.c silent loadview "
         au BufNewFile *.cpp call InsertSkeleton()
         au BufNewFile *.h call InsertHeaderSkeleton()
         function! InsertSkeleton()
          call InsertInclude()
  • Bicoloring/문보창 . . . . 11 matches
         // no10004 - Bicoloring
         #include <iostream>
         using namespace std;
         #define RED 1
         #define BLACK 2
         #define MAX_VERTEX 200
         bool input(int edge[][2], int * nVertex, int * nInputLine);
         bool isBicolorale(int edge[][2], int nVertex, int nInputLine);
         bool paintColor(int count, int vertex, int * color);
         int main()
          int nVertex;
          int nInputLine;
          int edge[MAX_VERTEX][2];
          while (input(edge, &nVertex, &nInputLine))
          if (isBicolorale(edge, nVertex, nInputLine))
         bool isBicolorale(int edge[][2], int nVertex, int nInputLine)
          bool check[MAX_VERTEX] = {0,}; // using node = nInputLine
          int color[MAX_VERTEX] = {0,}; // using vertex = nVertex
          int count = 0; // count = vertex number
          for (int i = 0; i < nInputLine; i++)
  • ClassifyByAnagram/sun . . . . 11 matches
          * 실행: java anagram.FindAnagram < 입력파일> 출력파일
          * genKey() 메소드의 성능 개선. qsort2([http://www.cs.bell-labs.com/cm/cs/pearls/sortanim.html ProgrammingPerals 참고]) 이용.
          * 실행: java anagram.FindAnagram < 입력파일> 출력파일
          * 실행: java anagram.FindAnagram 출력파일 < 입력파일
          * String 객체의 생성을 줄임.(대략 300ms 정도 줄어듬) : 마이크로 튜닝으로 넘어갈수록 노력 대비 결과가 크지 않음.
          * Class, method 이름 refactoring
          * Profiling
          InputStream in = null;
          for( int i=0; i<10000; i++ ) {
          anagram.add( "aahing" );
          repaint();
          public void paint( Graphics g )
          g.drawString( "JVM info:", 10, 20 );
          g.drawString( "....vendor : " + System.getProperty( "java.vm.vendor"), 10, 35 );
          g.drawString( "....version: " + System.getProperty( "java.vm.version"), 10, 50 );
          g.drawString( "....name: " + System.getProperty( "java.vm.name"), 10, 65 );
          g.drawString( "Estimated power: " + String.valueOf(elapsed), 10, 90 );
          public void add( String str )
          private Object genKey( String str )
          private void swap( int i, int j )
  • FortuneCookies . . . . 11 matches
          * "It seems strange to meet computer geeks who're still primarily running Windows... as if they were still cooking on a wood stove or something." - mbp
          * "Perl is executable line noise, Python is executable pseudo-code."
          * "Heck, I'm having a hard time imagining the DOM as civilized!" -- Fred L. Drake, Jr.
          * Good fortune in love, as well as a better position.
          * Some men are discovered; others are found out.
          * By failing to prepare, you are preparing to fail.
          * He who spends a storm beneath a tree, takes life with a grain of TNT.
          * You attempt things that you do not even plan because of your extreme stupidity.
          * Take care of the luxuries and the necessities will take care of themselves.
          * Words are the voice of the heart.
          * Your mind understands what you have been taught; your heart, what is true.
          * A king's castle is his home.
          * Advancement in position.
          * You will soon meet a person who will play an important role in your life.
          * He who has a shady past knows that nice guys finish last.
          * The universe is laughing behind your back.
          * The best prophet of the future is the past.
          * Even the boldest zebra fears the hungry lion.
          * Money will say more in one moment than the most eloquent lover can in years.
          * You have a will that can be influenced by all with whom you come in contact.
  • Gof/Adapter . . . . 11 matches
         == Intent ==
         adapter 클래스는 하나의 interface를 다른 interface 에 적합하게 맞춰주기 위해 (말 그대로 어뎁터 역할~) 다중상속을 이용한다.
          - 클라이언트가 이용한 domain-specific한 인터페이스를 정의한다.
          * Client (DrawingEditor)
          - adapting이 필요한 현존하는 interface를 정의한다.
         We'll give a brief sketch of the implementation of class and object adapters for the Motivation example beginning with the classes Shape and TextView.
          virtual void BoundingBox(Point& bottomLeft, Point& topRight) const;
          void GetOrigin (Coord& x, Coord& y) const;
         Shape assumes a bounding box defined by its opposing corners. In contrast, TextView is defined by an origin, height, and width. Shape also defines a CreateManipulator operation for creating a Manipulator object, which knowns how to animate a shape when the user manipulates it. TextView has no equivalent operation. The class TextShape is an adapter between these different interfaces.
         A class adapter uses multiple inheritance to adapt interfaces. The key to class dapters is to use one inheritance branch to inherit the interface and another branch to inherit the implementation. The usual way to make this distinction in C++ is to inherit the interface publicly and inherit the implementation privately. We'll use this convention to define the TextShape adapter.
          virtual void BoundingBox (Point& bottomLeft, Point& topRight) const;
         The BoundingBox operation converts TextView's interface to conform to Shape's.
         void TextShape::boundingBox (Point& bottomLeft, Point& topRight) const {
          GetOrigin (bottom, left);
          bottomLeft = Point (bottom, left);
          topRight = Point (bottom + height, left + width);
         The IsEmpty operations demonstrates the direct forwarding of requests common in adapter implementations:
         Finally, we define CreateManipulator (which isn't supported by TextView) from scratch. Assume we've already implemented a TextManipulator class that supports manipulation of a TextShape.
         The object adapter uses object composition to combine classes with different interfaces. In this approach, the adapter TextShape maintains a pointer to TextView.
          virtual void BoundingBox (Point& bottomLeft, Point& topRight) const;
  • HanoiProblem/임인택 . . . . 11 matches
          for(int i=0; i<3; i++)
          public void solve(int numOfDiscs) {
          for(int i=numOfDiscs; i>0; i--)
          public void moveDiscs(int numOfDiscs, int from) {
          int to = (from==0)?1:0;
          towers[2].bringDisc(towers[from]);
          towers[to].bringDisc(towers[from]);
          towers[to].bringDisc(towers[2]);
          towers[2].bringDisc(towers[from]);
          towers[from].bringDisc(towers[to]);
          towers[2].bringDisc(towers[to]);
          towers[2].bringDisc(towers[from]);
          System.out.println("Tower Created.");
          public boolean movable(Integer discNum){
          Integer iObj = (Integer)lastObj;
          if( iObj.intValue() > discNum.intValue() )
          public void putOnDisc(int discNum) {
          Integer i = new Integer(discNum);
          public Integer getTopDisc() {
          Integer topDisc = (Integer)(discsAtPillar.lastElement());
  • InterWikiIcons . . . . 11 matches
         The InterWiki Icon is the cute, little picture that appears in front of a link instead of the prefix established by InterWiki. An icon exists for some, but not all InterMap references.
         You can set InterWikiIcon to InterMap entries by putting an icon file of name lowercased InterWiki entry name, e.g; meatball for MeatBall, under imgs directory.
          * MoinMoin:MoinMoinDiscussions
          * Wiki:WardCunningham
          * Others?
         InterWikiIcon also used in the Unreal:Unreal Wiki.
         Only lovel-16.png included, while you WkPark arguing to rename it LovolNet. :P
         What about copy gentoo-16.png to gentookorea-16.png for InterMap entry 'GentooKorea'?
         Any recommendations on what software to use to shrink an image to appropriate size?
          The gimp :)
          * [[Icon(moin-new.gif)]]Amazon - http://puzzlet.org/imgs/amazon-16.png
          * [[Icon(moin-new.gif)]][http://www.worrynet.com/jandi/wiki.cgi/%C0%DC%B5%F0%B9%E7 Jandi] - http://puzzlet.org/imgs/jandi-16.png (16x16x16M)
          * [[Icon(moin-new.gif)]][http://ko.wikipedia.org/ KoWikipedia] - http://puzzlet.org/imgs/kowikipedia-16.png (16x16x16M)
         For more information, check http://puzzlet.org/plots/InterWikiIcons
  • NamedPipe . . . . 11 matches
         A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a
         named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
         Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network.
         Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe.
         == 2. using ==
         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
         #include <windows.h>
         VOID InstanceThread(LPVOID); // 쓰레드 함수
         int xx = 0;
         DWORD main(VOID)
         // The main loop creates an instance of the named pipe and
         // then waits for a client to connect to it. When the client
         // with that client, and the loop is repeated.
          PIPE_WAIT, // blocking mode
          PIPE_UNLIMITED_INSTANCES, // max. instances
          BUFSIZE, // input buffer size
          if (hPipe == INVALID_HANDLE_VALUE)
          // Wait for the client to connect; if it succeeds, // 클라이언트를 연결을 기다린다.
  • OperatingSystemClass/Exam2002_2 . . . . 11 matches
          * 앞에서 완성된 class를 상속받아서 binary semaphore class 를 구현.
          // do something
          Thread.sleep(( (int)(3*Math.random()) )*1000);
          catch (InterruptedException e) { }
          System.out.println("threadA got first mutex");
          // do something
          System.out.println ("threadA got second mutex");
          // do something
          Thread.sleep(( (int)(3*Math.random()) )*1000);
          catch (InterruptedException e) {}
          System.out.println ("threadB got second mutex");
          // do something
          System.out.println ("threadB got first mutex");
          public static void main (String[] args) {
         4. Consider a paging system with the page table stored in memory.
          * If we add associative registers and 75 percent of all page-table references are found in the associative regsters, what is the effective memory time? (Assume that finding a page-table entry in the associative registers takes zero time, if the entry is there)
         5. Consider the following page reference string:
         How many page faults would occur for the following replacement algorithm, assuming one, three, five, seven frames? Remember all frames are initially empty, so your first unique pages will all cost one fault each.
         6. Consider a file currently consisting of 100 blocks. Assume that the file control block(and the index block, in the case of indexed allocation) is already in memory, Calculate how many disk I/O operations are required for contiguous, linked and indexed (single-level) allocation strategies, if for one block, the following conditions hold. In the contiguous allocation case, assume that there is no room to grow in the beginning, but there is room to grow in the end. Assume that the block information to be added in stored in memory.
          * The block is added at the beginning.
  • ProjectZephyrus/ServerJourney . . . . 11 matches
          * DB Connection상에 버그가 있었다. 오 상상도 못했던 {{{~cpp InfoManager}}}는 견고하다고 생각했는데, 의외의 부분에서 잘못이 있었음 --["상민"]
          * {{{~cpp InfoManager}}}에서 {{{~cpp writeDeleteBuddyCmd}}} 완성했습니다... 테스트를 해보려고 했으나... #deleteBuddy#... 패킷을 보내니까 접속이 종료되어버리네여.... 아직 #deleteBuddy 패킷을 처리 못하나요?? 서버에서는 이렇게 나오내요..
         java.lang.ClassCastException: command.InsertBuddyCmd
         toReceiver: #offline#lsk
          * ok 완료. 문제는 내가 {{{~cpp command.CommandManager.getCommand()}}}에서 해당 패킷에서 {{{~cpp DeleteBuddy}}} 객체를 만든게 아니라 {{{~cpp InsertBuddy}}} 객체를 만들어 주어서 였다. 금요일에 pair시 이부분을 그대로 복사해서 붙여 두었었거든, 한줄 바로 잡으니 잘 돌아 간다. 네 의도대로 인지, 테스트 해봐라 --상민
          * {{{~cpp InfoManager}}}에서 테이블을 만드는 {{{~cpp createPZTable}}}과 테이블은 없애는 {{{~cpp dropPZTable}}}을 만들었습니다. 완성은 아니구요... 조금 수정은 해야합니다.. --상규
          * {{{~cpp LoginCmd}}} 부분의 버그라고 생각하는 부분들 또 완성
          * {{{~cpp InsertBuddyCmd }}} 완료 30~40분 정도 걸림
          * {{{~cpp InfoManager}}}를 버디 리스트 삭제하는 기능만 빼고 거의 완성된 듯 하다..
          * {{{~cpp InfoManager}}}에 대한 test코드 작성
          * Login 부분의 두가지 버그 해결
          1. online list에 본인의 ID가 나온다. in {{{~cpp LogCmd}}}
          1. offline list에 online buddy가 추가 되었다. in {{{~cpp InfoManager}}}
          * 상규 파트는 {{{~cpp InfoManager}}}만을 건드리도록 원칙을 정했기에, Cmd 부분이 결정되야 작업이 가능하다. 결정은 다되었고, Cmd들의 Attribute만 넣은 상태로 넘겨주면 진행이 될텐데, 지연되는 것이 안타깝다. 그냥 내가 만들고 넘겨야 할듯..
          * 현재 {{{~cpp InfoManager}}}를 제외한 모든 코드가 내가 작성한 상태이다. 대체 재동군은 어제 어떻게 만날수 있을까.
          * 앗싸 재동이에게 사기 쳤다. initinstance 부분에서 점선으로 초기화 되는 과정에 대하여 표현이 잘못 되었었군. 재동 말이 맞았음 역시나 방학때 다시 한번 훌터 봐야 할듯 바보 같이
          1. Login 기능 완료, online 메세지 까지 보내고 있음
          1. Windows 상에서 일반 콘솔에서 컴파일, 실행 하기 위한 배치 파일 작성
          * 상규 주도 login DB자료 처리 부분 완료.28일에 해논 것들이 도움이 된것 같다. 상규의 능력을 알수 있다. 으어 나보다 잘하잖아. T_T --상민
          * 잘하긴요.... 해본거라 그렇죠..머..^^ 몇번의 삽질끝에... {{{~cpp writeLoginCmd}}} 완성.. 하지만.. 버디 리스트를 갖고 있는 테이블인 {{{~cpp PZContactList}}}은 중복 허용 문제때문에.. 프리머리 키도 없고... 나중에 속도문제가 생기지 않을까 하는 걱정이 됩니다.. 좀더 생각해봐야겠습니다...^^ 그리고 재동군이 이제 합류하나여? --상규
  • ReleasePlanning . . . . 11 matches
         A release planning meeting is used to create a release plan, which lays out the overall project. The release plan is then used to create iteration plans for each individual iteration.
         It is important for technical people to make the technical decisions and business people to make the business decisions. Release planning has a set of rules that allows everyone involved with the project to make their own decisions. The rules define a method to negotiate a schedule everyone can commit to.
         The essence of the release planning meeting is for the development team to estimate each user story in terms of ideal programming weeks. An ideal week is how long you imagine it would take to implement that story if you had absolutely nothing else to do.
         No dependencies, no extra work, but do include tests. The customer then decides what story is the most important or has the highest priority to be completed.
         User stories are printed or written on cards. Together developers and customers move the cards around on a large table to create a set
         of stories to be implemented as the first (or next) release. A useable, testable system that makes good business sense delivered early is desired.You may plan by time or by scope. The project velocity is used to determine either how many stories can be implemented before a given date (time) or how long a set of stories will take to finish (scope). When planning by time multiply the number of iterations by the project velocity to determine how many user stories can be completed. When planning by scope divide the total weeks of estimated user stories by the project velocity to determine how many iterations till the release is ready.
          Individual iterations are planned in detail just before each iteration begins and not in advance. The release planning meeting was called the planning game and the rules can be found at the Portland Pattern Repository.
         When the final release plan is created and is displeasing to management it is tempting to just change the estimates for the user stories. You must not do this. The estimates are valid and will be required as-is during the iteration planning meetings. Underestimating now will cause problems later. Instead negotiate an acceptable release plan. Negotiate until the developers, customers, and managers can all agree to the release plan.
         The base philosophy of release planning is that a project may be quantified by four variables; scope, resources, time, and quality. Scope is how much is to be done. Resources are
         how many people are available. Time is when the project or release will be done. And quality is how good the software will be and how well tested it will be.
         Management can only choose 3 of the 4 project variables to dictate, development always gets the remaining variable. Note that lowering quality less than excellent has unforeseen impact on the other 3. In essence there are only 3 variables that you actually want to change. Also let the developers moderate the customers desire to have the project done immediately by hiring too many people at one time.
  • STLPort . . . . 11 matches
         = Introduce =
         본 문서는 Win32 환경에서 Visual C++ 를 사용하시는 분들이 STLport의 STL 라이브러리를 설치하여 사용하는데 도움을 주기 위하여 작성되었습니다. 가장 최소한의 설치 과정만을 싣는데 초점을 두었으며, Visual C++ 6 이하의 버전에서는 테스트하지 않았음을 미리 알려 드립니다. 기타 세세한 정보는 외부 자료 문서화 페이지 혹은 게시판에서 얻고, 나누어 주시기 바랍니다. 감사합니다.
          1. MSVC 컴파일러의 자질구레한 경고 메시지를 막을 수 있다 ({{{~cpp _msvc_warnings_off.h}}}가 준비되어 있음)
          1. 만만해 보이는 디렉토리에 압축을 풉니다.(참고로, 제 Visual Studio는 D:\Programming Files2 에 있습니다)
          * Tools 메뉴 > Options 항목 > Directories 탭에서, Include Files 목록에 stlport 디렉토리를 추가하고 나서 이것을 첫 줄로 올립니다.
          Upload:3-prebuild_includePath.GIF
          이 절의 설명과 이후의 설명을 모두 건너 뛰시고, '''stlport''' 폴더 전체를 VC++ 폴더의 /include 폴더에 복사하십시오. 그리고 "프로그램 관련 세팅" 절부터 읽으시면 됩니다. 단, 라이브러리 관련 부분은 관련이 없습니다.
          1. 도스 프롬프트에서 nmake install을 입력합니다.
          {{{~cpp E:\STLport-4.5.3\src\nmake -f vc6.mak install
          Upload:7-makeInstall.GIF
          * Tools > Options 메뉴 > Directories 탭에서, Include Files 목록에 방금 추가된 stlport 디렉토리(대개 ''C:/Program Files/Microsoft Visual Studio/VC98/include/stlport''이겠지요)를 추가하고 나서, 이 항목을 가장 첫 줄로 올립니다.
         STLport는 상용이 아니기 때문에, 링크 시 사용하는 STLport 전용 C++ 런타임 라이브러리(입출력스트림이 있는) 직접 설정해 주어야 합니다. 이것을 제대로 이해하려면 우선 VC++가 사용하는 런타임 라이브러리를 알아 봐야 합니다. VC++6의 런타임 라이브러리는 VC98/lib 디렉토리에서 확인할 수 있는데, 정적/동적 링크여부에 따라 크게 {{{~cpp LIBxxx.lib}}} 버전과 {{{~cpp MSVCxxx.lib}}} 버전으로 나뉩니다. 프로젝트에서 조정하는 부분은 Project > Setting 메뉴로 열리는 C/C++ 탭입니다. C/C++ 탭에서 "Code Generation" 카테고리를 선택하면 '''Use Run-time Library''' 드롭다운 박스를 조정해 줄 수 있습니다. 여기서 디버그 정보 포함('''debug''') 유무, 런타임 라이브러리의 스레딩('''thread''') 모드, 동적 링크 여부('''DLL''')의 조합을 결정해 줄 수 있습니다. 긴 설명은 빼고, 간단히 정리하면 다음과 같습니다. (MSDN의 설명을 참고하여 정리하였습니다)
          ||Single-Threaded|| LIBC.LIB || 단일 스레드, 정적 링크 || /ML || ||
          ||Single-Threaded|| LIBCP.LIB || 단일 스레드, 정적 링크 || /ML || ||
          LIBCMT.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in LIBC.lib(osfinfo.obj)
          LIBCMT.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in LIBC.lib(osfinfo.obj)
          LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
          <실행파일경로> : fatal error LNK1169: one or more multiply defined symbols found
          Error executing link.exe.
         이는, '''VC가 코드 생성 옵션을 무시하고 LIBCMT.lib을 기본적으로 덧대어 넣어주기 때문입니다'''. 실행파일을 만드는 경우라면 에러가 가장 성가실 테지만, 배포용 라이브러리를 만들 경우엔 경고도 없애 주어야 합니다. 이 에러와 경고를 없애기 위해서는, 위에 나온 링커 메시지 대로 /NODEFAULTLIB 옵션을 써야 합니다. VC IDE를 쓰고 계시다면 Project->Setting 메뉴를 선택하고 나오는 대화상자에서 '''"Link"''' 탭을 선택하시고, '''"Input"''' 드롭다운 항목을 고른 후에 '''"Ignore Libraries"''' 에디트 상자에 LIBCMT.lib를 써 넣으시면 됩니다.
  • ScheduledWalk/임인택 . . . . 11 matches
         import java.io.DataInputStream;
         import java.io.FileInputStream;
          private int board[][];
          private String schedule;
          private int curX, curY;
          private int size;
          private int dirX[] = {0,1,1,1,0,-1,-1,-1};
          private int dirY[] = {-1,-1,0,1,1,1,0,-1};
          for(int i=0; i<schedule.length(); ++i) {
          int idx = (int)(c - '0');
          DataInputStream din
          = new DataInputStream(new FileInputStream(new File("input2.txt")));
          size = Integer.parseInt(din.readLine());
          board = new int[size][size];
          String pos = din.readLine();
          String startPoint[] = pos.split(" ");
          curX = Integer.parseInt(startPoint[0]);
          curY = Integer.parseInt(startPoint[1]);
          schedule = din.readLine();
          e.printStackTrace();
  • SuperMarket/인수 . . . . 11 matches
          else if(command == "inventory")
          string good(&str[token+1], &str[str.size()]);
          string m(&str[token+1], &str[str.size()]);
          int money = StringConvertToInt(m);
          int token2 = getToken(str,2);
          string good(&str[token+1], &str[token2]);
          string cnt(&str[token2+1], &str[str.size()]);
          int count = StringConvertToInt(cnt);
          user.buyGoods(sm, sm.findGoods(good), count);
          int token2 = getToken(str,2);
          string good(&str[token+1], &str[token2]);
          string cnt(&str[token2+1], &str[str.size()]);
          int count = StringConvertToInt(cnt);
          user.cancleGoods(sm, sm.findGoods(good), count);
         // map<string, Cmd*> 이런식으로 string에는 커맨드를,Cmd 클래스는 HelpCmd클래스, Deposit클래스 등등의 부모 클래스, 즉 명령 클래스들의
         #include <iostream>
         #include <string>
         #include <vector>
         #include <cassert>
         #include <map>
  • [Lovely]boy^_^/3DLibrary . . . . 11 matches
         #ifndef _3D_INSU_LIB_
         #define _3D_INSU_LIB_
         #include <cmath>
         #include <vector>
         #include <iostream>
         using namespace std;
          int _nRow;
          int _nCol;
          void Init(int nRow, int nCol);
          Matrix(int nRow, int nCol);
          void Init();
          void SetMem(int pivot, float n) { _vec[pivot] = n; }
         #include "3d.h"
         void Matrix::Init(int nRow, int nCol)
          for(int i = 0 ; i < _nRow ; ++i)
          Init(4,4);
          Init(4,4);
         Matrix::Matrix(int nRow, int nCol)
          Init(nRow,nCol);
          Init(m._nRow, m._nCol);
  • 레밍즈프로젝트/박진하 . . . . 11 matches
         Fighting-_-/
          int GetSize() const;
          int GetUpperBound() const;
          void SetSize(int nNewSize, int nGrowBy = -1);
          // Accessing elements
          TYPE GetAt(int nIndex) const;
          void SetAt(int nIndex, ARG_TYPE newElement);
          TYPE& ElementAt(int nIndex);
          // Direct Access to the element data (may return NULL)
          // Potentially growing the array
          void SetAtGrow(int nIndex, ARG_TYPE newElement);
          int Add(ARG_TYPE newElement);
          int Append(const CArray& src);
          TYPE operator[](int nIndex) const;
          TYPE& operator[](int nIndex);
          void InsertAt(int nIndex, ARG_TYPE newElement, int nCount = 1);
          void RemoveAt(int nIndex, int nCount = 1);
          void InsertAt(int nStartIndex, CArray* pNewArray);
          TYPE* m_pData; // the actual array of data
          int m_nSize; // # of elements (upperBound - 1)
  • 정모/2011.4.4/CodeRace/강소현 . . . . 11 matches
         == Main.java ==
         public class Main {
          public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          while(b.getPeopleIndex() < 3){
          System.out.println("Luke가 강에 빠졌습니다ㅠㅠ");
          System.out.print("강 건널 사람 몇 명(0~2)? ");
          int num = input.nextInt();
          int [] name = new int[num];
          for(int i=0; i<num; i++){
          System.out.print("건널 사람 이름?(Layton: 1, Luke: 2, Bad: 3)->");
          name[i] = input.nextInt();
          for(int i=0; i<num; i++){
          public static boolean mustCheck(int num, int [] name){
          System.out.println("[Error] 배는 2인승이야!");
          System.out.println("[Error] Luke 혼자 못탐ㅋ");
          private String name;
          public void setName(String name){
          public String getName(){
          private String townName;
  • ASXMetafile . . . . 10 matches
          * <ASX>: Indicates an ASX metafile.
          * <Abstract>: Provides a brief description of the media file.
          * <Title>: Title of the media file.
          * <Author>: The author's name .
          * <Copyright>: Detailed copyright information (e.g., company name and copyright year).
          * <MoreInfo href = "path of the source" / >: Adds hyperlinks to the Windows Media Player interface in order to provide additional resources on the content.
          * <Entry>: Serves a playlist of media by inserting multiple "Entry" elements in succession.
          * <Duration value = "00:00:00">: Sets the value attribute for the length of time a streaming media file is to be played.
          * <Logo href = "path of the logo source" Style = "a style" / >: Adds custom graphics to the Windows Media player by choosing either a watermark or icon style. The image formats that Windows Media Player supports are GIF, BMP, and JPEG.
          o MARK: The logo appears in the lower right corner of the video area while Windows Media Player is connecting to a server and opening a piece of content.
          o ICON: The logo appears as an icon on the display panel, next to the title of the show or clip.
          * <Banner href = "path of the banner source">: Places a banner (82 pixels × 30 pixels) image at the bottom of the video display area.
          * <Ref href = "path of the source" / >: Specifies a URL for a content stream.
          * How to define the path of source:
          o Windows Media Services Server: File names will start with mms://.
          o ASX files, on the other hand, are small text files that can always sit on an HTTP server. When the browser interprets the ASX file, it access the streaming media file that is specified inside the ASX file, from the proper HTTP, mms, or file server.
          * ?sami="path of the source": Defines the path of a SAMI caption file within the <ref href> tag for media source.
          <Abstract>: This text will show up as a Tooltip and in the Properties dialog box
          <Title> Global title of the show </Title>
          <Author> The name of the author </Author>
  • BusSimulation . . . . 10 matches
          * Data Input - 시물레이션 데이터는 busData.txt 와 busStationData.txt 두 가지 로부터 받아들인다. 각 데이터의 값은 단계가 올라감에 따라서 추가되어간다.
          * User Input - 사용자는 자신이 원하는 시간 후의 시물레이션 결과를 볼 수 있다. 시간과 분을 입력받는다.
          * Input
          * Input
          *Input
          * Input
          * 종점에서는 모든 승객이 내린다. 종점에서는 타는 승객이 없다. (주의 - 아래 InputData에서 원하는 시간을 5400(1시간30분)이 아니라 9600(2시간40분)으로 설정함)
          * Input
          * Input
         || ["BusSimulation/태훈zyint"] || 태훈 ||
         Discrete Event Simulation이 되겠군요. 사람이 몇 명이 기다리느냐, 길 막힘 상태 등은 이산 확률 분포를 사용하면 될 것입니다. NoSmok:TheArtOfComputerProgramming 에서 NoSmok:DonaldKnuth 가 자기 학교 수학과 건물 엘레베이터를 몇 시간 관찰해서 데이타를 수집한 것과 비슷하게 학생들이 직접 84번, 85-1번 등의 버스를 타고 다니면서 자료 수집을 해서 그걸 시뮬레이션 실험하면 아주 많은 공부가 될 것입니다 -- 특히, 어떻게 실세계를 컴퓨터로 옮기느냐 등의 모델링 문제에 관해. 실제로 NoSmok:DonaldKnuth 는 TAOCP에서 이런 연습문제를 만들어 놨습니다. 제가 학부생 때 누군가 이런 숙제를 내줬다면 아마 한 두 계단(see also ["축적과변화"]) 올라설 계기가 되지 않았을까 하고 아쉬울 때가 있습니다. 이 문제에 드는 시간은 하루나 이틀 정도가 되겠지만 여기서 얻은 경험과 지혜는 십 년도 넘게 자신의 프로그래밍 인생에 도움이 될 것이라 믿어 의심치 않습니다. (팀으로 문제 해결을 하면 더 많은 공부가 되겠지요) see also ProgrammingPartyAfterwords 참고자료 --JuNe
  • CodeRace/20060105/도현승한 . . . . 10 matches
         #include <fstream>
         #include <vector>
         #include <algorithm>
         #include <iostream>
         #include <string>
         #include <ctype.h>
         using namespace std;
          int count;
          string word;
         void showStrVec(vector<string>& aVec)
          for (int i = 0; i < aVec.size(); i++)
          for(vector<string>::iterator iter = aVec.begin(); iter!=aVec.end(); iter++)
          for (int i = 0; i < aVec.size(); i++)
          for(vector<string>::iterator iter = aVec.begin(); iter!=aVec.end(); iter++)
         int findWord(vector<leonardong>& findVec, string str)
          for (int i = 0; i < findVec.size(); i++)
          if (findVec[i].word == str)
         string clearString(string str)
          int index = 0;
          string temp;
  • CppStudy_2002_2/STL과제/성적처리 . . . . 10 matches
         #include <iostream>
         #include <vector>
         #include <algorithm>
         #include <string>
         #include <fstream>
         using namespace std;
          string _StudentName;
          vector<int> _Scores;
          int _TotalScore;
          ScoresTable(const string& aStudentName) : _StudentName(aStudentName)
          void addScoreToVector(int aScore)
          for(unsigned int i = 0 ; i < _Scores.size() ; ++i)
          const string& getName() const
          int getnthScore(int n) const
          int getTotalScore() const
          for(unsigned int i = 0 ; i < _StudentList.size() ; ++i)
          ifstream anInputer("test.txt");
          while(!anInputer.eof())
          string aName;
          int aScore;
  • CppUnit . . . . 10 matches
         VC 7.0 용 세팅 화면 들만 추가합니다. --NeoCoin
         [http://janbyul.com/moin/moin.cgi/CppUnit/HowTo/Kor 이곳]에 VS2005용 설정방법을 간단하게 정리해둠. - 임인택
          === include, library directory 맞춰주기 (둘중 하나를 선택한다.) ===
          Include : {{{~cpp ...\cppunit-x.x.xinclude }}}
          a. Tools -> Options -> Directories -> Include files 에서 해당 cppunit
          a. Project -> Settings -> C/C++ -> Preprocessor -> Additional include directories
          a. Project -> Settings -> Link -> Input -> Additional Library directories
          * Project Setting - Link - General - object/library 에 cppunitd.lib, testrunnerd.lib 를 추가해준다.
          * 해당 프로젝트가 있는 곳의 debug 등의 디렉토리에 해당 lib 디렉토리에 있는 testrunnerd.dll 을 복사해준다. 이는 Project Setting - Post-Build-step 의 Post-build-command 에 다음을 추가해주면 컴파일 할때마다 dll 화일을 자동으로 복사해준다.
          * Project Setting - Code Generation - Use Run-Time library 를 다음으로 맞춰준다.
         #include <msvc6/testrunner/testrunner.h>
         #include <cppunit/extensions/testfactoryregistry.h>
         BOOL CMyApp::InitInstance () {
         #define CPP_UNIT_EXAMPLETESTCASE_H
         #include <cppunit/TestCase.h>
         #include <cppunit/extensions/HelperMacros.h>
         #include "stdafx.h" // MFC 인 경우.
         #include "hostapp.h" // MFC 인 경우 해당 App Class
         #include "ExampleTestCase.h"
         #include <iostream>
  • ErdosNumbers/임인택 . . . . 10 matches
         # -*- coding: UTF-8 -*-
          lines = []
          line = f.readline()
          while line!='' :
          lines.append(line)
          line = f.readline()
          return lines
         def extractInfo(lines):
          sNum = int(lines[idx])
          sInfo = lines[idx].split()
          nPaper = int(sInfo[0])
          nPerson = int(sInfo[1])
          for i in range(0, len(names)):
          lines = readFile(fileName)
          sNum, nPaper, nPerson = extractInfo(lines)
          for i in range(2, 2+nPaper):
          names = extractNames(lines[i])
          minErdosNum = -1
          for name in names:
          if allNames.has_key(name) and (minErdosNum == -1 or minErdosNum>allNames[name]) :
  • Gof/State . . . . 10 matches
         == Intent ==
         네트워크 커넥션을 나타내는 TCPConnection 라는 클래스를 생각해보자. TCPConnection 객체는 여러가지의 상태중 하나 일 수 있다. (Established, Listening, Closed). TCPConnection 객체가 다른 객체로부터 request를 받았을 때, TCPConnection 은 현재의 상태에 따라 다르게 응답을 하게 된다. 예를 들어 'Open' 이라는 request의 효과는 현재의 상태가 Closed 이냐 Established 이냐에 따라 다르다. StatePattern은 TCPConnection 이 각 상태에 따른 다른 행위들을 표현할 수 있는 방법에 대해 설명한다.
          1. Who defines the state transitions?
          * Creating and destroying State objects.
          * Using dynamic inheritance.
          _state = TCPClosed::Instance ();
          static TCPState* Instance ();
          static TCPState* Instance ();
          static TCPState* Instance ();
         TCPState 서브클래스는 내부 상태를 가지지 않는다, 그러므로 TCPState는 공유될 수 있고, 각각 단지 하나의 인스턴스만이 요구되어진다. 이 TCPState 서브클래스의 각각의 유일한 인스턴스들은 정적함수인 Instance 로 얻어진다. (TCPState 서브클래스는 Singleton 으로 만들어진다.)
          ChangeState (t, TCPEstablished::Instance ());
          ChangeState (t, TCPListen::Instance ());
          // send FIN, receive ACK of FIN
          ChangeState (t, TCPListen::Instance ());
          ChangeState (t, TCPEstablished::Instance ());
         대부분의 대중적인 상호작용적인 드로잉 프로그램들은 직접 조작하여 명령을 수행하는 'tool' 을 제공한다. 예를 들어, line-drawing tool 은 사용자가 클릭 & 드레그 함으로서 새 선을 그릴 수 있도록 해준다. selection tool 은 사용자가 도형을 선택할 수 있게 해준다. 보통 이러한 툴들의 palette (일종의 도구상자 패널)를 제공한다. 사용자는 이러한 행동을 'tool을 선택한 뒤 선택한 tool을 이용한다' 라고 생각한다. 하지만, 실제로는 editor 의 행위가 현재 선택한 tool로 전환되는 것이다. drawing tool 이 활성화 되었을 때 우리는 도형을 그리고 selection tool 이 활성화 되었을 때 도형을 선택할 수 있는 식이다. 우리는 현재 선택된 tool 에 따른 editor 의 행위를 전환시키는 부분에 대해 StatePattern 을 이용할 수 있다.
         툴-구체적 행위를 구현하는 서브클래스를 정의하는 곳에 대해 Tool 추상 클래스를 정의할 수 있다. drawing editor 는 currentTool 객체를 가지며, request를 이 객체에 위임시킨다. 사용자가 새 tool를 골랐을 때, drawing editor 는 행위를 전환해야 하므로 따라서 이 객체는 교체된다.
         이 방법은 HowDraw [Joh92]와 Unidraw [VL90] drawing editor 프레임워크에 이용되었다. 이는 클라이언트로 하여금 새로운 종류의 tool들을 쉽게 정의할 수 있도록 해준다. HowDraw 에서 DrawingController 클래스는 currentTool 객체에게 request를 넘긴다. UniDraw에서는 각각 Viewer 와 Tool 클래스가 이와 같은 관계를 가진다. 다음의 클래스 다이어그램은 Tool 과 DrawingController 인터페이스에 대한 설명이다.
          * State객체는 종종 SingletonPattern 으로 구현된다.
  • HowManyFibs?/하기웅 . . . . 10 matches
         #include <iostream>
         #include "BigInteger.h"
         using BigMath::BigInteger;
         BigInteger decimalNum=10;
         BigInteger fibNum[501];
         int i, counting;
         void FibInit()
         int output(BigInteger startNum, BigInteger endNum)
          counting=0;
          counting++;
          return counting;
         BigInteger convertBig(char *number)
          BigInteger temp;
          int charLen = strlen(number);
         int main()
          FibInit();
          while(cin>>start>>end)
  • InternalLinkage . . . . 10 matches
         [MoreEffectiveC++]의 Item 26 'Limiting the number of objects of a class. 를 보면 다음과 같은 부분이 있다.
         The second subtlety has to do with the interaction of inlining and static objects inside functions. Look again at the code for the non-member version of thePrinter: ¤ Item M26, P17
         Printer& thePrinter()
          static Printer p;
         Except for the first time through this function (when p must be constructed), this is a one-line function — it consists entirely of the statement "return p;". If ever there were a good candidate for inlining, this function would certainly seem to be the one. Yet it's not declared inline. Why not? ¤ Item M26, P18
         Consider for a moment why you'd declare an object to be static. It's usually because you want only a single copy of that object, right? Now consider what inline means. Conceptually, it means compilers should replace each call to the function with a copy of the function body, but for non-member functions, it also means something else. It means the functions in question have internal linkage.
         You don't ordinarily need to worry about such linguistic mumbo jumbo, but there is one thing you must remember: functions with internal linkage may be duplicated within a program (i.e., the object code for the program may contain more than one copy of each function with internal linkage), and this duplication includes static objects contained within the functions. The result? If you create an inline non-member function containing a local static object, you may end up with more than one copy of the static object in your program! So don't create inline non-member functions that contain local static data.(9)
         9) In July 1996, the °ISO/ANSI standardization committee changed the default linkage of inline functions to external, so the problem I describe here has been eliminated, at least on paper. Your compilers may not yet be in accord with °the standard, however, so your best bet is still to shy away from inline functions with static data. ¤ Item M26, P61
         C++ 에서 SingletonPattern 을 구현할때 다음과 같은 방식을 사용하고는 한다.
         Object& theObject() // 이 함수는 클래스의 정적 메소드나
         Object& theObject()
         와 같은 의미가 된다. 이것은 inline 으로 선언할거리가 될것 같기도 하지만 inline 으로 선언되지 않았다. 왜일까? (Except for the first time through this function (when p must be constructed), this is a one-line function — it consists entirely of the statement "return p;". If ever there were a good candidate for inlining, this function would certainly seem to be the one. Yet it's not declared inline. Why not? )
         그것은 바로 InternalLinkage 때문이다. InternalLinkage 란, 컴파일 단위(translation unit -> Object Code로 생각해 보자) 내에서 객체나 함수의 이름이 공유되는 방식을 일컫는다. 즉, 객체의 이름이나 함수의 이름은 주어진 컴파일 단위 안에서만 의미를 가진다.
         예를들어, 함수 f가 InternalLinkage를 가지면, 목적코드(Translation Unit) a.obj 에 들어있는 함수 f와 목적코드 c.obj 에 들어있는 함수 f는 동일한 코드임에도 별개의 함수로 인식되어 중복된 코드가 생성된다.
          ''DeleteMe 이 말도 이해가 안갑니다. 주제로 시작한 inline은 중복 코드를 감안하고 성능을 위해서 쓰는 것이 아니 었던가요? 무엇이 문제인가요? inline 이 아닌 함수들은 ExternalLinkage로 전제 되었다고 볼수 있는데, 지적해야 할것은 inline의 operation에 해당하는 코드가 아니라, static 같은 변수가 중복을 예로 들어야 할것을... --NeoCoin''
         하지만 InternalLinkage가 초례하는 문제는 1996 {{{~cpp ISO/ANSI C++ }}} 표준화 작업에서 인라인함수(InlineFunction)를 ExternalLinkage 로 변경해서 문제가 되지 않는다.(최근의 컴파일러들은 지원한다.).
          ''암튼,결론이 어떻게 되나요? singleton 을 구현하는 용도로 자주 쓰는 static 변수를 사용하는 (주로 getInstance류) 메소드에서는 inline 을 쓰지 말자 인가요? --[1002]''
          ''여기서 말하는 구형이란, 1996년에 변경된 표준을 지키지 않은 컴파일 것이다. 99년에 이책을 처음 접할때 오래되었다는 생각은 안들었는데... MEC++ 는 고전이 될수는 없는걸까.. --NeoCoin''
         == InternalLinkage문제가 등장하는 다른 케이스 ==
  • JSP/SearchAgency . . . . 10 matches
         import="java.util.*, java.io.BufferedReader, java.io.InputStreamReader, java.io.FileReader,
          org.apache.lucene.index.IndexReader,
          org.apache.lucene.index.FilterIndexReader,
          org.apache.lucene.search.IndexSearcher,
         pageEncoding="UTF-8"%>
          out.write(" <input type=text name='keyword'>");
          class OneNormsReader extends FilterIndexReader {
          private String field;
          public OneNormsReader(IndexReader in, String field) {
          super(in);
          public byte[] norms(String field) throws IOException {
          return in.norms(this.field);
         // String index = "/home/httpd/index";
          String index = "index";
          String field = "contents";
          String queries = null;
          int repeat = 0;
          String normsField = null;
          IndexReader reader = IndexReader.open(index);
          Searcher searcher = new IndexSearcher(reader);
  • JTDStudy/첫번째과제/원희 . . . . 10 matches
         import javax.swing.*;
          public static void main(String[] args){
          int[] comNum = new int[3];
          comNum[0] = (int)(Math.random() * 10 +1);
          comNum[1] = (int)(Math.random() * 10 +1);
          comNum[2] = (int)(Math.random() * 10 +1);
          int[] userNum = new int[3];
          int strikeCounter = 0, ballCounter=0, outCounter=0;
          int i, j;
          userNum[0] = Integer.parseInt(JOptionPane.showInputDialog(null,"첫번째 숫자를 입력하시오"));
          userNum[1] = Integer.parseInt(JOptionPane.showInputDialog(null,"두번째 숫자를 입력하시오"));
          userNum[2] = Integer.parseInt(JOptionPane.showInputDialog(null,"세번째 숫자를 입력하시오"));
          //String temp = JOptionPane.showInputDialog(null,"숫자를 입력하시오 (한칸씩 띄어서)");
          JOptionPane.showMessageDialog(null, "3strike!! You win!");
          * 방법은 여러 방법이 있지. 만약 100자리라면, int 형이 정수값만 가지고 나머지는 버리는 특성을 이용해서 123%10 하면 3이 나오고, 12%10 하면 2 나오고 나머지는 1이고... 이런식으로 숫자른 나누어 줄 수도 있고, 입력시에 어짜피 String형으로 받아지기 때문에 문자 하나씩 끊어 읽게끔 해도 되지^^ 조금만 생각해보면 방법이 나올 수도 있어 - [상욱]
  • LinkedList/C숙제예제 . . . . 10 matches
         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
          int num;
         #include "ExList.h"
          printf("%d\n",p->num);
         void main()
          List *pList,*pNew,*pIns;
          printf("root생성시\n");
          printf("pNew생성시\n");
          pIns=(List *)malloc(sizeof(List));
          pIns->num=3;
          pIns->prev=pList;
          pIns->next=pNew;
          pList->next=pIns;
          pNew->prev=pIns;
          printf("pIns삽입시\n");
          free(pIns);
          printf("pIns 삭제시\n");
         [LinkedList]
  • LoadBalancingProblem/임인택 . . . . 10 matches
          == LoadBalancingMain.java ==
          * @author Administrator
          * To change this generated comment edit the template variable "typecomment":
          * Window>Preferences>Java>Templates.
          * To enable and disable the creation of type comments go to
          * Window>Preferences>Java>Code Generation.
         public class LoadBalancingMain {
          public static void main(String[] args) {
          suite.addTestSuite(TestLoadBalancing.class);
          == TestLoadBalancing.java ==
          * @author Administrator
          * To change this generated comment edit the template variable "typecomment":
          * Window>Preferences>Java>Templates.
          * To enable and disable the creation of type comments go to
          * Window>Preferences>Java>Code Generation.
         public class TestLoadBalancing extends TestCase{
          LoadBalancing bal = new LoadBalancing(3);
          int sData[] = {1,3,3};
          int gData[];
          for(int i=0; i<sData.length; i++)
  • RSS . . . . 10 matches
         The technology behind RSS allows you to subscribe to websites that have provided RSS feeds, these are typically sites that change or add content regularly. To use this technology you need to set up some type of aggregation service. Think of this aggregation service as your personal mailbox. You then have to subscribe to the sites that you want to get updates on. Unlike typical subscriptions to pulp-based newspapers and magazines, your RSS subscriptions are free, but they typically only give you a line or two of each article or post along with a link to the full article or post.
         The RSS formats provide web content or summaries of web content together with links to the full versions of the content, and other meta-data. This information is delivered as an XML file called RSS feed, webfeed, RSS stream, or RSS channel. In addition to facilitating syndication, RSS allows a website's frequent readers to track updates on the site using a news aggregator.
         Before RSS, several similar formats already existed for syndication, but none achieved widespread popularity or are still in common use today, and most were envisioned to work only with a single service. For example, in 1997 Microsoft created Channel Definition Format for the Active Channel feature of Internet Explorer 4.0. Another was created by Dave Winer of UserLand Software. He had designed his own XML syndication format for use on his Scripting News weblog, which was also introduced in 1997 [1].
         RDF Site Summary, the first version of RSS, was created by Dan Libby of Netscape in March 1999 for use on the My Netscape portal. This version became known as RSS 0.9. In July 1999 Netscape produced a prototype, tentatively named RSS 0.91, RSS standing for Rich Site Summary, this was a compromise with their customers who argued the complexity introduced (as XML namespaces) was unnecessary. This they considered a interim measure, with Libby suggesting an RSS 1.0-like format through the so-called Futures Document [2].
         Soon afterwards, Netscape lost interest in RSS, leaving the format without an owner, just as it was becoming widely used. A working group and mailing list, RSS-DEV, was set up by various users to continue its development. At the same time, Winer posted a modified version of the RSS 0.91 specification - it was already in use in their products. Since neither side had any official claim on the name or the format, arguments raged whenever either side claimed RSS as its own, creating what became known as the RSS fork. [3]
         The RSS-DEV group went on to produce RSS 1.0 in December 2000. Like RSS 0.9 (but not 0.91) this was based on the RDF specifications, but was more modular, with many of the terms coming from standard metadata vocabularies such as Dublin Core. Nineteen days later, Winer released RSS 0.92, a minor and (mostly) compatible revision of RSS 0.91. The next two years saw various minor revisions of the Userland branch of RSS, and its adoption by major media organizations, including The New York Times.
         Winer published RSS 2.0 in 2002, emphasizing "Really Simple Syndication" as the meaning of the three-letter abbreviation. RSS 2.0 remained largely compatible with RSS 0.92, and added the ability to add extension elements in their own namespaces. In 2003, Winer and Userland Software assigned ownership of the RSS 2.0 specification to his then workplace, Harvard's Berkman Center for the Internet & Society.
  • StaticInitializer . . . . 10 matches
         Static Initializer 는 이러한 값들을 미리 셋팅하기 위해 사용하며 다음과 같은 문법을 이용한다.
         문제는 StaticInitializer 부분에 대해서 상속 클래스에서 치환을 시킬 수 없다는 점이다. 이는 꽤 심각한 문제를 발생하는데, 특히 Test 를 작성하는중 MockObject 등의 방법을 사용할 때 StaticInitializer 로 된 코드를 치환시킬 수 없기 때문이다. 저 안에 의존성을 가지는 다른 객체를 생성한다고 한다면 그 객체를 Mock 으로 치환하는 등의 일을 하곤 하는데 StaticInitialzer 는 아에 해당 클래스가 인스턴스화 될때 바로 실행이 되어버리기 때문에 치환할 수 없다.
         StaticInitialzer 에서 값만 치환하는 것으로 (상속클래스에서 해당 Class Variable 의 값을 바꿔주는식으로) 해결되는 문제라면 크게 어렵진 않다. 하지만, 만일 저 부분에 DB 나 File 등(또는 File 을 사용하는 Logger 등) 외부 자원을 이용하는 클래스를 초기화하게 된다면 사태는 더욱더 심각해진다. 처음부터 해당 Class 가 DB, File 등 큰 자원에 대해 의존성을 가지게 되는 것이다. 게다가 이는 상속을 하여 해당 부분을 Mock 으로 치환하려고 해도 StaticInitializer 가 먼저 실행되어버리므로 '치환'이 불가능해져버린다.
         이를 방지하려면, StaticInitializer 를 일반 Method 로 추출한뒤, 생성자에서 이를 호출한다. (단, 인스턴스를 2개 이상 만드는 클래스인경우 문제가 있겠다.)
          이 문제가, final static 으로 값이 세팅될때의 문제가 아닌가요? Mock의 생성자에서 교체 가능하지 않나요? --NeoCoin
          Mock 생성자에서 값이 교체되어도 StaticInitializer 자체가 실행된다는 점에는 변함이 없습니다. 만일 StaticInitializer 에서 외부 자원들을 사용한다면, Side-Effect 들을 피하기 어려운 경우가 많다는 것을 강조하고 싶었습니다. --[1002]
         실무에서 저러한 StaticInitializer 를 가장 많이 볼 수 있는 곳은 Logging 관련 코드이다. 보통 Logging 관련 코드들은 개발 마무리 즈음에 붙이게 되는데, 일정에 쫓기다 보니 사람들이 Logging 관련 코드에 대해서는 CopyAndPaste 의 유혹에 빠지게 된다. 순식간에 Logging 과 Property(해당 클래스에 대한 환경설정부분) 에 대한 Dependency 가 발생하게 된다. 팀 차원에서 조심할 필요가 있다. --[1002]
  • TheJavaMan . . . . 10 matches
          [TheJavaMan/스네이크바이트] - 민수
          [TheJavaMan/테트리스] - 수민
          [TheJavaMan/지뢰찾기] - 세환
          [TheJavaMan/숫자야구] - 휘동, 원명 - 종료
          [TheJavaMan/달력] - 세환 - 종료
          [TheJavaMan/로보코드] - 참여를 바랍니다.ㅜㅜ
          [TheJavaMan/비행기게임] - 휘동, 민수, 원명, 수민, 세환
          * [http://java.sun.com/docs/books/tutorial/java/index.html The Java Tutorial]
          * [Java], [Eclipse], [JUnit], TestDrivenDevelopment, TestFirstProgramming
          * [TheJavaMan/설치] - 자바설치랑 Hello출력
          * [http://www.javanuri.com/lecture/mainLecture.jsp 자바누리]
         [http://www.yes24.com/home/pd.asp?SID=G4JaiuIvSpuwzia6CMCpwdLN6ycFuMHPjStWSgEBltChZEnIOvC8UAlza&AK=376933&TABID=1 Thinking in Java]
         [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200312300024 JAVA HOW TO PROGRAM (<- 2학년때 교재, 번역5판도 나왔네)]
          - [TheJavaMan/로보코드]로 하면 되지 않을까?ㅋㅋ 로보코드 폐인을 위해 -[Leonardong]
  • TheTrip/이승한 . . . . 10 matches
         = TheTrip/이승한 =
         #include <iostream>
         using namespace std;
         void main(){
          int travelN = 0; //여행 수
          int i, tempIntAver;;
          double tempInput;
          i=tempInput=0; //임시변수 초기화
          cin>>stuN; //처음으로 학생수를 입력받는다.
          cin>>tempInput;
          stu[i] = tempInput; //각학생의 경비정보를 저장한다.
          sum += tempInput; //합을 누적합계한다.
          tempIntAver = (sum * 100) / stuN; //센트단위까지만 계산하기 위한 조치.
          aver = tempIntAver/100;
          cin>>stuN; // 다음 여행의 학생수를 입력받는다. 0이라면 루프가 종료된다.
         [겨울과프로젝트] [AOI] [TheTrip]
  • 만년달력/인수 . . . . 10 matches
          static int DAYS_PER_MONTH[] = {31,28,31,30,31,30,31,31,30,31,30,31};
          int year, month;
          public Calendar(int year, int month) {
          public void set(int year, int month) {
          protected int getNumOfDays() {
          public int[] getCalendar() {
          int ret[] = new int[42];
          int start = getMonthStartPoint();
          for(int i = start ; i < getNumOfDays() + start ; ++i)
          protected int getNumOfLeapYears() {
          int ret = 0;
          for(int i = 1 ; i < year ; ++i)
          protected int getMonthStartPoint() {
          int ret = year + getNumOfLeapYears();
          for(int i = 0 ; i < month - 1 ; ++i)
          protected boolean isLeapYear(int year) {
          public CalendarTestCaseTest(String arg) {
          private int[] getExpectedCalendar(int start) {
          int ret[] = new int[42];
          for(int i = start ; i < calendar.getNumOfDays() + start ; ++i)
  • 스터디/Nand 2 Tetris . . . . 10 matches
          IN a;
          IN a, b;
          IN a, b;
          IN a, b;
          IN a, b, s;
          IN a[4], s[2];
          * half-adder, full-adder, 16bit-adder, incremental adder, ALU에 대해서 공부하고 구현하였습니다.
          IN a, b; // 1-bit inputs
          IN a, b, c; // 1-bit inputs
          IN a[16], b[16];
          * Incremental
         CHIP Inc16 {
          IN a[16];
          * Hack Machine language를 사용해서 프로그램을 작성해 봄.
          2개의 Instruction을 지원한다. 각 Instruction은 2Byte이다.
          * A-Instruction : @value // Where value is either a non-negative decimal number or a symbol referring to such number.
          Binary : 0vvv vvvv vvvv vvvv
          * C-Instruction : dest=comp;jump // Either the dest or jump fields may be empty.
          // If dest is empty, the "=" is omitted;
          // if jump is empty, the ";" is omitted;
  • 10학번 c++ 프로젝트/소스 . . . . 9 matches
         == main.cpp ==
         #include <windows.h>
         #include "now_time.h"
         #include "alarmsetting.h"
         #include "cho.h"
         void main() {
          a.print_now_time();
          alarmsetting c;
         #include <iostream>
         #include <time.h>
         #include <stdio.h>
         #include <conio.h>
         #include <windows.h>
         #include "now_time.h"
         using namespace std;
         extern int ah;
         extern int am;
         extern int as;
         void gotoxy(int x, int y)
          CONSOLE_CURSOR_INFO CurInfo;
  • 3DGraphicsFoundation/INSU/SolarSystem . . . . 9 matches
         #include <windows.h>
         #include <gl\gl.h>
         #include <gl\glu.h>
         #include <gl\glaux.h>
         static HINSTANCE hInstance;
         inline void glRGB(int x, int y, int z)
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
          int nPixelFormat;
          PFD_DRAW_TO_WINDOW | // Draw to Window (not to bitmap)
          PFD_SUPPORT_OPENGL | // Support OpenGL calls in window
          PFD_MAIN_PLANE, // Draw in main plane
          // Choose a pixel format that best matches that described in pfd
          // Set the pixel format for the device context
          // Set Viewport to window dimensions
          // Calculate aspect ratio of the window
          // Set the perspective coordinate system
          // field of view of 45 degrees, near and far planes 1.0 and 425
          glEnable(GL_LIGHTING);
          glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
         int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  • 3N+1Problem/강희경 . . . . 9 matches
          print aNumber,
         def TreeNPlusOne(aNumber, aMin, aMax, aBinaryMap):
          if(IsInRange(aMin, aMax, aNumber) and aBinaryMap[aNumber-aMin]):
          aBinaryMap[aNumber-aMin] = False
         def InputRange():
          min, max = input('최소, 최대: ')
          while IsCorrectInput(min, max) == False:
          min, max = input('최소, 최대: ')
          return min, max
         def MakeBinaryMap(aMin, aMax):
          rangeOfMap = aMax - aMin + 1
          binaryMap = range(rangeOfMap)
          for i in range(rangeOfMap):
          binaryMap[i] = True
          return binaryMap
         def FindMaxCycleLength(aMin, aMax, aBinaryMap):
          for i in range(aMin, aMax+1):
          if(aBinaryMap[i-aMin]):
          cycleLength = TreeNPlusOne(i, aMin, aMax, aBinaryMap)
         def OutputResult(aMin, aMax, aMaxCycleLength):
  • ACM_ICPC/2012년스터디 . . . . 9 matches
          * 문제를 지정해서, 풀어오고, 분석. (Programming Challenges와 더블릿 홈페이지 사용)
          * Programming Challenge에서 알고리즘 당 두문제 정도 풀기.
          * Programming Challenge 문제에 더욱 높은 우선순위를 둠. - [http://uva.onlinejudge.org/]
          * Doublets - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=1091]
          * Where's Waldorf - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=951]
          * Doublets - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=1091] //화요일까지 풀지 못하면 소스 분석이라도 해서..
          * A Multiplication Game - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=33&page=show_problem&problem=788]
          * Shoemaker's Problem - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=32&page=show_problem&problem=967]
          * Binary Indexed Tree
          * [IndexedTree/권영기]
          * Binary Indexed Tree
          * Programming Challenges에서 기하 파트 맘에 드는 문제 하나 풀어오기.
         링크드리스트 (Linked List)
          - Binary Heap
          - Binomial Heap
          - (Binary) Indexed Tree (이건 알아둬야 합니다. 실제로 Binary Indexed Tree는 Binomial에 가깝지만..)
          - Interval Tree (이것 또한 Indexed Tree가 이녀석의 역할을 대신할정도로 만능이지만.)
          - Matroid Theory (이것도 꼭 알 필요는 없습니다)
          - Minimum Cut (최소 절단 문제)
          - 최대 이분매칭 (Bipartite Maximum Matching)
  • DelegationPattern . . . . 9 matches
         또한, 클래스 하나가 방대해질때, 적절하게 그 클래스의 책임을 다른 클래스들에게 위임해주는 것은 ["Refactoring"] 의 방법이 된다.
         ObjectOrientedProgramming 을 할때 자주 쓰이는 코딩 스타일. 아마 사람들이 무의식중에 자주 쓸 것이다.
         example) 예전에 VonNeumannAirport 을 JuNe 과 ["1002"] 가 Pair 하던중 JuNe 이 작성했던 Refactoring 으로서의 Delegation.
          private int _traffic;
          private int [] _arrivalGate;
          private int [] _departureGate;
          public int getTraffic() {
          int [] passenger;
          passenger = (int [])iter.next();
          public void setArrivalGates(int [] aCity) {
          public void setDepartureGates(int [] aCity) {
          public int [] getArrivalGates() {
          public int [] getDepartureGates() {
          public int getDistance(int fromCity, int toCity){
          int distance=java.lang.Math.abs(_getArrivalCityGate(fromCity)
          private void movePassenger(int fromCity, int toCity, int aNumber) {
         여기까지는 Airport 이다. 하지만 VonNeumannAirport 문제에서도 보듯, 실제 Input 에 대해서 Configuration 은 여러 Set 이 나온다.
         이 기능을 추가하기 위해 일단 Airport Code 를 Refactoring 하기로 했다. 이를 위해 Airport 의 기능중 Configuration 과 관련된 기능에 대해 Configuration 을 Extract 하고, 내부적으로는 Delegation 함으로서 외부적으로 보이는 기능에 대해서는 일관성을 유지한다. (Test Code 가 일종의 Guard 역할을 했었음)
          private int [] _arrivalGate;
          private int [] _departureGate;
  • ErdosNumbers/황재선 . . . . 9 matches
          private TreeMap<String, String> tm;
          private ArrayList<String> nameList;
          tm = new TreeMap<String, String>();
          public String readLine() {
          Scanner sc = new Scanner(System.in).useDelimiter("\n");
          private String[] extractNames(String line) {
          String[] divide = line.split(":");
          String[] peopleName = divide[0].split(",");
          for (int i = 0; i < peopleName.length; i++)
          String[] people = new String[peopleName.length/2];
          for (int i = 0; i < peopleName.length; i+=2) {
          private void setErdosNumber(String[] people) {
          for(String name : people) {
          withErdos(people);
          boolean joint = false;
          nameList = new ArrayList<String>();
          for(String name : people) {
          if (tm.containsKey(name)) {
          joint = true;
          if (joint) withCoWorker(people);
  • HowManyFibs?/문보창 . . . . 9 matches
         || 2006-01-06 Accepted 0.008 Minimum ||
         #include <iostream>
         using namespace std;
         #include <vector>
         #include <cstring>
         #define BIG 1
         #define SMALL 2
         #define TIE 3
         class BigInteger
          int len;
          void nextBigInteger()
          cin >> temp;
          for (int i = 0; i < len; i++)
          void findPibNum(BigInteger& a, BigInteger& b)
          int carry = 0;
          int isBigThan(BigInteger& a)
          for (int i = len - 1; i >= 0; i--)
         static BigInteger inA, inB;
         static BigInteger pib[481];
          for (int i = 3; i <= 480; i++)
  • Java/숫자와문자사이변환 . . . . 9 matches
          int i = 639;
          String str = String.valueOf ( i );
          String str = Integer.toString ( i );
          String str = i.toString ( );
          String str = "" + i;
          String str = "639";
          int i = Integer.valueOf ( str ).intValue ( );
          int i = Integer.parseInt ( str );
          01, 02, ... , 09 String 데이터를
          int i_month = Integer.parseInt(s_month); 하면 1, 2, 3 ... 으로 되는군...
          Float를 Integer로 바꾸기
          int i = ( int ) f;
          Object를 int 타입으로 형변환 하기 ... 바로 안되므로 String으로 바꾼후 int로 형변환 한다.
          Integer.parseInt ( vector.elementAt ( 0 ).toString () );
  • MedusaCppStudy/석우 . . . . 9 matches
         #include <iostream>
         using std::cout;
         using std::endl;
         using std::cin;
         int square();
         int triangle();
         int main()
         int square()
          int length;
          cin >> length;
          for (int rows = 0 ; rows < length ; rows++)
          for (int cols = 0 ; cols < length ; cols++)
         int triangle()
          int side;
          cin >> side;
          for (int r = 0 ; r < side ; r++)
          for (int c = 0 ; c < 2 * side ; c++)
         #include <algorithm>
         #include <iostream>
         #include <vector>
  • TheJavaMan/스네이크바이트 . . . . 9 matches
          public int MAX = 20;
          public int[][] board = new int [MAX][];
          for(int i=0; i<MAX; i++)
          board[i] = new int[MAX];
          public void PrintScreen()
          for(int i=0; i<MAX; i++)
          for(int j=0; j<MAX; j++)
          System.out.print(board[i][j] + " ");
          System.out.println();
          System.out.println();
          int x;
          int y;
          int count = 0;
          x = rmd.nextInt(20);
          y = rmd.nextInt(20);
          int x, y, bx, by;
          System.out.println("움직이고자 하는 방향을 입력하세요");
          System.out.println("a : 왼쪽 " + "d : 오른쪽 " + "w : 위쪽 " + "x : 아래쪽");
          int select = System.in.read();
          while(System.in.read()!='\n')
  • 5인용C++스터디/소켓프로그래밍 . . . . 8 matches
          Socket 생성 -> Socket 에 이름연결 (bind)
          [Dialog based] -> [Windows Sockets]를 설정
         #include "ChildSock.h"
         #include "ListenSock.h"
          void InitServer();
          void SendData(CString& strData);
         void CServerApp::InitServer()
          m_pMainWnd->GetDlgItem(IDC_SEND)->EnableWindow(TRUE);
         void CServerApp::SendData(CString& strData)
          CString strText;
          UINT nPort;
          ((CListBox*)m_pMainWnd->GetDlgItem(IDC_LIST1))->InsertString(-1, strText);
          CString strText;
          UINT nPort;
          ((CListBox*)m_pMainWnd->GetDlgItem(IDC_LIST1))->InsertString(-1, strText);
          m_pMainWnd->GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
          다이얼로그가 초기화될 때 서버로 작동하도록 CServerDlg 클래스의 OnInit Dialog()함수에 다음 코드를 삽입한다.
          ((CServerApp*)AfxGetApp)->InitServer();
          GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
          CString strData;
  • API/WindowsAPI . . . . 8 matches
         #include <windows.h>
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         HINSTANCE g_hInst;
         int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
          ,LPSTR lpszCmdParam,int nCmdShow)
          g_hInst=hInstance;
          WndClass.hInstance=hInstance;
          hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
          NULL,(HMENU)NULL,hInstance,NULL);
          ShowWindow(hWnd,nCmdShow);
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
          return(DefWindowProc(hWnd,iMessage,wParam,lParam));
         = Explained =
         [http://www.winapi.co.kr/win32lec/lec2/lec2-1-1.htm WinAPI 강좌]
  • CleanCode . . . . 8 matches
          * [https://code.google.com/p/google-styleguide/ google coding style guide]
          * [http://refactoring.com/ Martin Fowler의 refactoring home]
          * [http://blog.goyello.com/2013/05/17/express-names-in-code-bad-vs-clean/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+goyello%2FuokR+%28Goyelloblog%29 Express names in code: Bad vs Clean]
          * Chapter 2 Meaningful Names - Naming Convention
          * 클래스의 이름을 지을 때는 -info, -data와 같은 일반적인 이름을 쓰지 말라.
          * Account를 만들면 되지 AccountInfo라는 클래스를 만들 필요는 없다. Account 클래스 내부에 들어가는 정보가 Info니까.
          * 아래와 같은 식으로 Account내부의 정보를 하나로 묶으면 AccountInfo 클래스와 getAccountInfo()등이 있을법하지 않은가? -> 저런 구조 자체가 잘못됐을 수 있다. getAccountInfo()와 같은 방법이 아니라 다른 방법으로 일을 시키는 모양이 더 낫다.
         private AccountInfo info;
          * 테스트 시에는 올바른 input이 제대로 들어오는지를 먼저 확인하고 나서 코드가 잘못되었는지 생각해볼 것.
          * [http://oddpoet.net/blog/2010/08/02/a-new-look-at-test-driven-development-kr/ BDD, Given/When/Then]
          * [http://alblue.bandlem.com/2011/02/gerrit-git-review-with-jenkins-ci.html 참고 데모 동영상]
          * [http://www.filewiki.net/xe/index.php?&vid=blog&mid=textyle&act=dispTextyle&search_target=title_content&search_keyword=gerrit&x=-1169&y=-20&document_srl=10376 gerrit install guide]
          * Git + Gerrit + Jenkins 전체 결합을 통해 코드 버그를 줄여보자
          * [http://rein.kr/blog/archives/3156]
          * String.append와 PathParser.render는 둘이 서로 문자열을 합치는 작업을 하더라도 직접적인 연산을 하는 것과 추상적인 연산을 하는 것의 차이로 서로 추상화 수준이 다르다고 할 수 있다.
          * Error Handling
          * Consider using try-catch-finally instead of if statement.
          * Returning null or undefined (Javascript) {{{
         var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array.
         array.forEach(/* handle found strings */)
  • CompleteTreeLabeling/하기웅 . . . . 8 matches
         즉 이것은 combination(루트를 뺀 총 노드 수, 루트를 뺀 총 노드 수/분기계수) 임을 알 수 있다.
         combination(6, 6/2)이 되고 이렇게 뽑은 것을 두가지로 세울 수 있으므로 2!의 줄세우는 방법을 곱해준다.
         깊이 1에서의 경우의 수 = 분기계수! * combination(루트를 뺀 총 노드수, 루트를 뺸 총 노드수/분기계수)
         #include <iostream>
         #include <cmath>
         #include "BigInteger.h"
         using BigMath::BigInteger;
         int depth, level, nodeNum, temp, templevel, tempdepth, select, i;
         BigInteger labelingNum;
         BigInteger factorial[3300];
         void InitFactorial()
         BigInteger combination(int a, int b)
         BigInteger getCompleteTreeLabeling(int l, int d)
          labelingNum=1;
          return labelingNum/l;
          labelingNum = labelingNum * factorial[l] * combination(nodeNum, select);
         int main()
          InitFactorial();
          while(cin>>level>>depth)
          cout << getCompleteTreeLabeling(level, depth) << endl;
  • CubicSpline/1002/test_NaCurves.py . . . . 8 matches
          for x in dataset:
          def testInsertPointX(self):
          self.assertEquals (l.getControlPointListX(), self.dataset)
          def testInsertPointY(self):
          for x in self.dataset:
          self.assertEquals (l.getControlPointListY(), listY)
          for i in range(0, len(self.dataset)):
          for j in range(0, len(self.dataset)):
          for i in range(1, len(self.dataset)):
          for i in range(0, len(self.dataset)):
          def testInterpolation(self):
          for x in self.dataset:
          def testInsertPointX(self):
          self.assertEquals (pl.getControlPointListX(), self.dataset)
          def testInterpolation(self):
          for x in self.dataset:
          def testControlPointPiece(self):
         class TestSpline(unittest.TestCase):
          self.s = Spline(self.dataset)
          def testInterpolation(self):
  • DPSCChapter2 . . . . 8 matches
         Before launching into our descriptions of specific design patterns, we present a case study of sorts, involving multiple patterns. In the Design Pattern preface, the Gang of Four speak about moving from a "Huh?" to an "Aha!" experience with regard to understanding design patterns. We present here a little drama portraying such a transition. It consists of three vignettes: three days in the life of two Smalltalk programmers who work for MegaCorp Insurance Company. We are listening in on conversations between Don (an object newbie, but an experienced business analyst) and Jane (an object and pattern expert). Don comes to Jane with his design problems, and they solve them together. Although the characters are fictitious, the designs are real and have all been part of actual systems written in Smalltalk. Our goal is to demonstrate how, by careful analysis, design patterns can help derive solutions to real-world problems.
         Our story begins with a tired-looking Don approaching Jane's cubicle, where Jane sits quietly typing at her keyboard.
         우리의 이야기는 지친표정을 지으며 제인의 cubicle (음.. 사무실에서의 파티클로 구분된 곳 정도인듯. a small room that is made by separating off part of a larger room)로 가는 Don 과 함께 시작한다. 제인은 자신의 cubicle에서 조용히 타이핑하며 앉아있다.
         Don : Hey, Jane, could you help me with this problem? I've been looking at this requirements document for days now, and I can't seem to get my mind around it.
         Jane : That's all right. I don't mind at all. What's the problem?
         Don : It's this claims-processing workflow system I've been asked to design. I just can't see how the objects will work together. I think I've found the basic objects in the system, but I don't understand how to make sense from their behaviors.
         Don : Here, let me show you the section of the requirements document I've got the problem with:
          1. Data Entry. This consists of various systems that receive health claims from a variety of different sources. All are logged by assigning a unique identifier. Paper claims and supporting via OCR (optical character recognition) to capture the data associated with each form field.
          2. Validation. The scanned and entered forms are validated to ensure that the fields are consistent and completely filled in. Incomplete or improperly filled-in forms are rejected by the system and are sent back to the claimant for resubmittal.
          3. Provider/Plan Match. An automated process attempts to mach the plan (the contract unser which the claim is being paid) and the health care provider (e.g., the doctor) identified on the claim with the providers with which the overall claim processing organization has a contract. If there is no exact match, the program identifies the most likely matches based on soundex technology (an algorithm for finding similar-sounding words). The system displays prospective matches to knowledge workers in order of the likeinhood of the match, who then identify the correct provider.
          4. Automatic Adjudication. The system determines whether a claim can be paid and how much to pay if and only if there are no inconsistencies between key data items associated with the claim. If there are inconsistencies, the system "pends" the claim for processing by the appropriate claims adjudicator.
          5. Adjudication of Pended Claims. The adjudicator can access the system for a claim history or a representation of the original claim. The adjudicator either approves the claim for payment, specifying the proper amount to pay, or generates correspondence denying the claim.
  • Eclipse . . . . 8 matches
         ["Eclipse"] 프로젝트는 통합 개발 환경(IDE)을 위한 플렛폼을 목표하는 오픈소스 프로젝트 이다. [http://www.eclipse.org/projects/index.html 부분인용]
          * 2006년 5월 - eclipse 3.2 RC5 [http://zeropage.org/~rhasya/eclipse3.2RC5.zip Win32용, PyDev, SubClipse포함]
          * 2005년 6월 - eclipse 3.1 RC2 등장( [http://zeropage.org/pub/eclipse/eclipse-SDK-3.1RC2-win32.zip zp내 다운받아놓은 것 (win32용만)])
          * [http://www.eclipse.org/downloads/index.php 다운로드]
          * [http://eclipse-plugins.2y.net/eclipse/plugins.jsp 플러그인 사이트]
          * [http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/accessibility/keys.html Eclipse 단축키 모음] [http://eclipse-tools.sourceforge.net/shortcuts.html Eclipse Keyboard Shortcuts]
          * [http://www.eclipsepowered.org/archives/2004/11/18/best-jvm-settings-for-eclipse/ Best JVM Setting for Eclipse]
          * http://eclipsians.net/index.php
         ["SWT"], ["Eclipse/PluginUrls"]
          1. Menu -> Window -> Open Perspective -> CVS Repositary (없으면 Other)에서
          * Eclipse를 설치할때 JRE를 Eclipse가 못찾아서 실행 되지 않는 경우가 있다. 특히 학교의 Win98에서 이러하다. 이럴 경우 '''Eclipse 폴더 내에 jdk1.4이상의 jre폴더를 복사'''하면 Install Complete라는 이미지와 함께 Eclipse가 세팅되고 실행 된다. 이후 해당 Eclipse의 실행 포인트 역시 jre의 vm이 되는데,
          * 외부 {{{~cpp JavaDoc}}} ''Preferences -> Java -> Installed JREs -> Javadoc URL''
          * Ctrl + H Search에서 파일 검색, *.java 파일 검색, * 로 검색한다. String Set을 검색한다.
          * Heap Status 라는 플러그인을 설치하면 [IntelliJ] 에서처럼 GarbageCollecting 을 force 할 수 있다.
         ||Alt +F6|| Windows간 전환||
         || Alt+Shift+Q + ? || Window->Preference->workspace->key->Advenced 의 Help Me... 옵션을 키고 Alt+Shift+Q를 누르고 기다려 보자 ||
         [1002]의 경우 jmechanic, pmd, 그리고 잘 모르겠는 profiler (패키지 이름은 ru.nlmk 였는데) plugin 랑 Eclipse Tail 깔아서 쓰는중. 그리고 FreeMarker 작업시 FreeMarker plugin 설치해서 작업중.
          * [neocoin]:정말 Java Source Editor면에서는 이것보다 나은것을 찾지 못하겠다. CVS 지원 역시 훌륭하고, Project파일 관리 면에서도 우수하다. 하지만 가장 인상 깊었던건 오픈 프로젝트라서, 이걸 볼수 있다는 점이다. 바로 [http://64.38.198.171/downloads/drops/R-2.0-200206271835/testResults.php org.eclipse.core.tests] 이런것을 각 분야별로 수백개씩 하고 있었다. 이런것은 나에게 힘을 준다. --상민
          * 기능으로 보나 업그레이드 속도로 보나 또하나의 Platform; 플러그인으로 JUnit 이 아에 들어간것과 리펙토링 기능, Test Case 가 new 에 포함된 것 등 TDD 에서 자주 쓰는 기능들이 있는건 반가운사항. (유난히 자바 툴들에 XP 와 관련한 기능들이 많이 추가되는건 어떤 이유일까. MS 진영에 비해 자바 관련 툴의 시장이 다양해서일까) 아주 약간 아쉬운 사항이라면 개인적으로 멀티 윈도우 에디터라면 자주 쓸 창 전환키들인 Ctrl + F6, Ctrl + F7 은 너무 손의 폭 관계상 멀어서 (반대쪽 손이 가기엔 애매하게 가운데이시고 어흑) ( IntelliJ 는 Alt + 1,2,3,.. 또는 Alt + <- , ->) 단축키들이 많아져 가는 상황에 재정의하려면 끝도 없으시고. (이점에서 최강의 에디터는 [Vi] 이다;) 개인적 결론 : [Eclipse] 는 Tool Platform 이다; --석천
         Eclipse is an open platform for tool integration built by an open community of tool providers. ...
  • GuiTestingWithMfc . . . . 8 matches
         CppUnit 을 이용한 MFC 에서의 GuiTesting (시도중. 결과는?)
         http://zeropage.org/pub/GuiTesting/GuiTest1.gif
         === 1. GUI Runner Setting ===
         이는 App 클래스의 InitInstance 함수에서 해준다.
         #include "stdafx.h"
         #include "GuiTestingOne.h"
         #include "GuiTestingOneDlg.h"
         #include "cppunit\ui\mfc\TestRunner.h"
         #include "GuiTestCase.h"
         #define new DEBUG_NEW
         BEGIN_MESSAGE_MAP(CGuiTestingOneApp, CWinApp)
          //{{AFX_MSG_MAP(CGuiTestingOneApp)
          // NOTE - the ClassWizard will add and remove mapping macros here.
          // DO NOT EDIT what you see in these blocks of generated code!
          ON_COMMAND(ID_HELP, CWinApp::OnHelp)
         CGuiTestingOneApp::CGuiTestingOneApp()
         CGuiTestingOneApp theApp;
         BOOL CGuiTestingOneApp::InitInstance()
          AfxEnableControlContainer();
          Enable3dControls(); // Call this when using MFC in a shared DLL
  • JTDStudy/첫번째과제/원명 . . . . 8 matches
         import javax.swing.JOptionPane;
          private int correctNumber;
          public static void main(String[] args) {
          int guess = 0, result = 0;
          guess = oneGame.inputGuess();
          int setNumber = 0;
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          }while (((int)(correctNumber / 10)) == setNumber
          || ((int)(correctNumber % 10)) == setNumber);
          public int inputGuess()
          String input = JOptionPane.showInputDialog("Enter three different number\n");
          int guess = Integer.parseInt(input);
          public int compare(int aGuess)
          int compareResult = 0, cCorrect = correctNumber;
          int firstGuess = (int) (aGuess / 100);
          int secondGuess = ((int) (aGuess / 10)) % 10;
          int thirdGuess = aGuess % 10;
          if (((int)(cCorrect / 100) == firstGuess))
  • Kongulo . . . . 8 matches
         #!/usr/bin/env python
         # Copyright (c) 2005, Google Inc.
         # Redistribution and use in source and binary forms, with or without
         # modification, are permitted provided that the following conditions are
         # * Redistributions of source code must retain the above copyright
         # notice, this list of conditions and the following disclaimer.
         # * Redistributions in binary form must reproduce the above
         # copyright notice, this list of conditions and the following disclaimer
         # in the documentation and/or other materials provided with the
         # * Neither the name of Google Inc. nor the names of its
         # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
         # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
         # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • LIB_3 . . . . 8 matches
         #if !defined(LIB_SCHE_CPP)
         #define LIB_SCHE_CPP
         /* Init The Scheduler List
         void LIB_Init_Schedu(){
          for (int count = 0;count<LIB_MAX_HEAP;count++) {
          LIB_INT_COUNT = 0;
         여기서는 MAIN에서 본 듯 태스크를 만들어 주는 함수
         /* Create The Task
         void LIB_create_task (char *task_name,int priority,void (*task)(void),INT16U * Stack)
          // Init The Stack
          LIB_STACK_INIT(task,Stack); <-------- 스택을 초기화 해준다.....
          if ( priority < LIB_MIN_PRIORITY || priority > LIB_MAX_PRIORITY ) return; <--------- 우선순위가 지랄 같으면 그냥 끝낸다.
          // Insert Prio Queue;
          // Init the TCB by argument <----- 함수에서 얻은 변수들로... 초기화...ok???
          pReady_heap[ready_tcb_ptr]->StackSeg = (INT16U)FP_SEG(Stack);
          pReady_heap[ready_tcb_ptr]->StackOff = INT16U(Stack) - 28;
          int temp_count = ready_tcb_ptr;
         void LIB_resume_task(INT16U priority ){
          int temp;
          for ( int i = 0; i<= suspend_tcb_ptr ; i++ ) {
  • LawOfDemeter . . . . 8 matches
         So we've decided to expose as little state as we need to in order to accomplish our goals. Great! Now
         within our class can we just starting sending commands and queries to any other object in the system will-
         nilly? Well, you could, but that would be a bad idea, according to the Law of Demeter. The Law of Demeter
         tries to restrict class interaction in order to minimize coupling among classes. (For a good discussion on
         What that means is that the more objects you talk to, the more you run the risk of getting broken when one
         of them changes. So not only do you want to say as little as possible, you don't want to talk to more
         objects than you need to either. In fact, according to the Law of Demeter for Methods, any method of an
         object should only call methods belonging to:
         any parameters that were passed in to the method.
         Specifically missing from this list is methods belonging to objects that were returned from some other
          SortedList thingy = someObject.getEmployeeList();
          thingy.addElementWithKey(foo.getKey(), foo);
         This is what we are trying to prevent. (We also have an example of Asking instead of Telling in foo.getKey
         ()). Direct access of a child like this extends coupling from the caller farther than it needs to be. The
         caller is depending on these facts:
         someObject holds employees in a SortedList.
         Instead, this should be:
          someObject.addToThingy(foo);
         Now the caller is only depending on the fact that it can add a foo to thingy, which sounds high level
         The disadvantage, of course, is that you end up writing many small wrapper methods that do very little but
  • MoinMoinBugs . . . . 8 matches
         Back to MoinMoinTodo | Things that are MoinMoinNotBugs | MoinMoinTests contains tests for many features
         === Tables broken by trailing spaces ===
         Tables don't work right if there are trailing spaces.
         ''Yes, by design, just like headings don't accept trailing spaces. In the case of headings, it is important because "= x =" is somewhat ambiguous. For tables, the restriction could be removed, though.''
         || OK || again ||
         And as a fun sidenote, the UserPreferences cookie doesn't seem to work. The cookie is in my ~/.netscape/cookies file still. My EfnetCeeWiki and XmlWiki cookies are duplicated!? It is kind of like the bug you found when I, ChristianSunesson, tried this feature with netscape just after you deployed it.
         Hehe, and my changes are not logged to the RecentChanges database, I'll hope you find these changes this year. :) BUG BUG BUG!
         ''Well, Netscape suxx. I send the cookies with the CGI'S path, w/o a hostname, which makes it unique enough. Apparently not for netscape. I'll look into adding the domain, too.''
         Hmmm...I use NetScape, MsIe, MoZilla and Galeon. I haven't had a problem but some other's using MoinMoin 0.8 have intermittently lost cookies. Any ideas?
         -- BruceDurling
          * Solve the problem of the Windows filesystem handling a WikiName case-indifferent (i.e. map all deriatives of an existing page to that page).
          * Check whether the passed WikiName is valid when editing pages (so no pages with an invalid WikiName can be created); this could also partly solve the case-insensitive filename problem (do not save pages with a name only differing in case)
          * InterWiki links should either display the destination Wiki name or generate the A tag with a TITLE attribute so that (at least in IE) the full destination is displayed by floating the cursor over the link. At the moment, it's too hard to figure out where the link goes. With that many InterWiki destinations recognised, we can't expect everyone to be able to recognise the URL.
          * Hover over the interwiki icon and you'll already get a tooltip, I'll look into the title attribute stuff.
          * RecentChanges can tell you if something is updated, or offer you a view of the diff, but not both at the same time.
          * If you want the ''latest'' diff for an updated page, click on "updated" and then on the diff icon (colored glasses) at the top.
          * That's what I'm doing for the time being, but by the same rationale you don't need to offer diffs from RecentChanges at all.
          * The intent is to not clutter RecentChanges with functions not normally used. I do not see a reason you want the lastest diff when you have the much better diff to your last visit.
          * It'd be really nice if the diff was between now and the most recent version saved before your timestamp (or, failing that, the oldest version available). That way, diff is "show me what happened since I was last here", not just "show me what the last edit was."
          * Hmmm, that '''is''' so. :) Take a look at the message at the top of the diff page after clicking on "updated", it'll often show text like "spanning x versions". You need the current CVS version for that, though.
  • MoreEffectiveC++/Miscellany . . . . 8 matches
         == Item 32: Program in the Future tense ==
         원문:As software developers, we may not know much, but we do know that things will change. We don't necessarily know what will change, how the changes will be brought about, when the changes will occur, or why they will take place, but we do know this: things will change.
         좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
         ''program in future tense''는, 변화의 수용하고, 준비한다. 라이브러에 추가될 새로운 함수, 앞으로 일어날 새로운 오버로딩(overloading)을 알고, 잠재적으로 모호성을 가진 함수들의 결과를 예측한다. 새로운 클래스가 상속 계층에 추가될 것을 알고, 이러한 가능성에 대하여 준비한다. 새로운 어플리케이션에서 코드가 쓰이고, 그래서 새로운 목적으로 함수가 호출되고, 그런 함수들이 정확히 동작을 유지한다. 프로그래머들이 유지 보수를 할때, 일반적으로 원래의 개발자의 영역이 아닌, 유지 보수의 몫을 안다. 그러므로, 다른 사람에 의해서 소프트웨어는 이해, 수정, 발전의 관점에서 구현하고 디자인된다.
         "변화한다.", 험난한 소프트웨어의 발전에 잘 견디는 클래스를 작성하라. (원문:Given that things will change, writeclasses that can withstand the rough-and-tumble world of software evolution.) "demand-paged"의 가상 함수를 피하라. 다른 이가 만들어 놓지 않으면, 너도 만들 방법이 없는 그런 경우를 피하라.(모호, 원문:Avoid "demand-paged" virtual functions, whereby you make no functions virtual unless somebody comes along and demands that you do it) 대신에 함수의 ''meaning''을 결정하고, 유도된 클래스에서 새롭게 정의할 것인지 판단하라. 그렇게 되면, 가상(virtual)으로 선언해라, 어떤 이라도 재정의 못할지라도 말이다. 그렇지 않다면, 비가상(nonvirtual)으로 선언해라, 그리고 차후에 그것을 바꾸어라 왜냐하면 그것은 다른사람을 편하게 하기 때문이다.;전체 클래스의 목적에서 변화를 유지하는지 확신을 해라.
         원리를 구현하기 위해 특이하게 하지 마라.:연산자와 함수를 자연스럽고 명시적인 문법으로 제공하라. built-in(기본 자료) 형으로 구현하라:의심될때는 int로 하라
         당신의 코드를 변화가 필요할때, 그 효과를 지역화(지역화:localized) 시키도록 디자인 해라. 가능한한 캡슐화 하여라:구체적인 구현은 private 하라. 광범위하게 적용해야 할곳이 있다면 이름없는(unamed) namespace나, file-static객체 나 함수(Item 31참고)를 사용하라. 가상 기초 클래스가 주도하는 디자인은 피하라. 왜냐하면 그러한 클래스는 그들로 부터 유도된 모든 클래스가 초기화 해야만 한다. - 그들이 직접적으로 유도되지 않은 경우도(Item 4참고) if-than-else을 개단식으로 사용한 RTTI 기반의 디자인을 피하라.(Item 31참고) 항상 클래스의 계층은 변화한다. 각 코드들은 업데이트 되어야만 한다. 그리고 만약 하나를 읽어 버린다면, 당신의 컴파일러로 부터 아무런 warning를 받을수 없을 것이다.
         class String {
          ~string();
          string name;
         상업용 클래스 라이브러리(C++표준 라이브러리 상의 string 스펙의 날짜를 앞당기려는 회사)는 가상 파괴자를 가지고 있지 않은 sting클래스를 포함한다. 그 벤더의 설명은?
          * 우리는 가상 파괴자를 만들지 않는다. 왜냐하면, String가 vtbl을 가지기를 원하지 않기 때문이다. 우리는 String*를 가지게할 의도는 없다. 그래서 이는 문제가 되지 않는다. 우리는 이것이 수반하는 어려움에 대하여 생각하지 않는다.
         확실히 vtbl 문제는 합법적인 접근이다. (Item 24참고) 대다수 String클래스의 구현에서 오직 하나의 char*를 각각의 String 객체가 가지고 있다. 그래서 각 String객체에 추가되는 vptr도 두배의 양을 차지한다. 허용하지 않으려는 이유는 이해하기 쉽다. String같은 클래스를 무겁게 사용하면 눈에 띠는 성능 저하가 있다. 앞서 언급한 경우 클래스당 성능 저하는 약 20%정도를 가지고 온다. (Item 16참고)
         어떤 것이 더 많은 문제를 일으키는 것으로, 밴더들의 주목을 받고 있을까? "우리는 String*을 사용하는 목적을 가지지 않는다. 그래서 이는 별 문제가 되지 않는다." 그건 아마 사실일 것이다. 하지만 그들의 String클래스는 수많은 개발자들이 사용가능한 것이다. 수많은 개발자들이 C++의 수준이 제각각이다. 이러한 개발자들이 String상에서의 비가상 파괴자(no virtual destructor)를 이해할까? 그들이 비가상 파괴자를 가진 String때문에 String으로 유도된 새로운 클래스가 모험 비슷한 것을 알고 있을까? 이런 벤더들은 그들의 클라이언트들이 가상 파괴자가 없는 상태에서 String*를 통하여 삭제가 올바르게 작동하지 않고, RTTI와 String에 대한 참조가 아마 부정확한 정보를 반환한다는걸 확신시킬까? 이 클래스가 정확히 쓰기 쉬운 클래스일까? 부정확하게 쓰기 어려운 클래스일까?
         이 벤더는 물론 String클래스에 관한 유도해서는 안되도록 디자인 된 문서들을 제공할 것이다. 하지만, 프로그래머들이 문서를 보는 도중에 그 부분을 놓쳤다면 어떻게 하겠는가?
         대안으로 C++을 사용할때 유도를 제한해 버리는 것이다. Item 26에서 어떻게 객체를 heap에 만들거고 auto_ptr객체로 heap객체를 조정하는 방법에 관해서 언급하였다. String을 위한 인터페이스 생성은 아마 독특하고 불편한 다음과 같은 문법 을 요구한다.
         auto_ptr<String> ps(String::makeString("Future tense C++"));
         String s("Future tense C++");
         하지만 정확하지 않게 동작하는 유도된 클래스의 사용을 억제하는 것은 문법적으로 상당히 불편함을 낳는다. (String에서 이런 문법적으로 불편한 면이 그리 강조되지 않다. 그렇지만 다른 클래스에서 이러한 문법적인 불편함을 따지는 면이 중요하다.)
         물론, 필요하다면 현재 감안하는 생각으로 접근한다. 당신이 개발중인 소프트웨어는 현재의 컴파일러에서 동작해야만 한다.;당신은 최신의 언어가 해당 기능을 구현할때까지 기다리지 못한다. 당신의 현재 가지고 있는 언어에서 동작해야 하고. 그래서 당신의 클라이언트에서 사용 가능해야 한다.;당신의 고객에게 그들의 시스템을 업그레이드 하거나, 수행 환경을(operating environment) 바꾸게 하지는 못할것이다. 그건은 '''지금''' 수행함을 보증해야 한다.;좀더 작은, 좀더 빠른 프로그램에 대한 약속은 라이프 사이클을 줄이고, 고객에게 기대감을 부풀릴 것이다. 그리고 당신이 만드는 프로그램은 '''곧''' 작동해야만 한다. 이는 종종 "최신의 과거"를 만들어 버린다. 이는 중요한 속박이다. 당신은 이를 무시할수 없다.
  • ProjectZephyrus/ThreadForServer . . . . 8 matches
         [http://zeropage.org/~neocoin/ProjectZephyrus/data/junit.jar jUnit Lib] [[BR]]
         [http://zeropage.org/~neocoin/ProjectZephyrus/data/mm.mysql-2.0.14-bin.jar MySQL JDBC Driver][[BR]]
         InfoManager쪽의 writeDeleteBuddy 부분을 완성해서 commit시켜라
         만들어서 InfoManager가 최초 생성시 앞의 두개를 수행하도록 하는데 위치는
         InfoManager.getInstance()의 if문 안쪽에 넣어주면 sync문제도 해결될것이다.
         그후 남은 할일이라면, 현재 InfoManager가 다른 package임에도 불구하고 command package에 대한
         information hiding이 잘 지켜지지 않았다. 다른 쪽은 내가 코딩하면서 package내부는 느슨하게,
         InfoManager의 코드들의 경우 attribute에 직접 접근하는 부분이 너무많은듯 하다.
         이부분을 refactoring할 요소가 남은것 같다. 이는 네가 commit후에
         일단, ["ProjectZephyrus/Server"]의 진행율에 기록된 대로 InfoManager의 DeleteBuddy부분외에는 완료되었다.
         6/7일에 상규와 만나서 InfoManager를 거의(?) 마쳤는데, 일단 전에 PacketForm 석천이와 회의할때와 바뀐것이
          * 저도 오늘(월욜)까지 작업 왠만큼 끊내놓을께요 한편, wincvs 안쓸랍니다 eclipse 써야지 원...--재동
  • TheTrip/황재선 . . . . 8 matches
         === TheTrip ===
         ==== {{{~cpp TheTrip.java}}} ====
         import java.io.InputStreamReader;
          * TODO To change the template for this generated file go to
          * Window - Preferences - Java - Code Style - Code Templates
         public class TheTrip {
          int studentNum;
          public int inputStudentNum() {
          studentNum = (int) inputNum();
          private double inputNum() {
          BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
          String line = in.readLine();
          num = Double.parseDouble(line);
          e.printStackTrace();
          public double[] inputMoney() {
          for(int i = 0; i < studentNum; i++) {
          money[i] = inputNum();
          System.out.println("$10000.00을 넘을수없으니 다시 입력해");
          money[i] = inputNum();
          for(int i = 0; i < money.length; i++) {
  • UbuntuLinux . . . . 8 matches
         [[include(틀:OperatingSystems)]]
         공식 사이트는 역시 기대를 저버리지 않았다. [https://wiki.ubuntu.com/ShareInternetConnection]와
         [https://wiki.ubuntu.com/ThinClientHowtoNAT] 이 두 문서를 따라하다 보니 어느새 다른 컴퓨터에서 인터넷에 연결할 수 있는 것이 아닌가!
         iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
         title Windows 2000 Advanced Server SP4
         chainloader +1
         $ip link
         그런 뒤에야 이제 맨날 들날날락했던 /etc/network/interfaces 안에 내용을 고치고 다시 네트워크를 시작했더니 ㅇ이제 되는구나...
         /etc/init.d/networking stop
         /etc/init.d/networking restart
         http://yourdomain:8000/YourProjectNameHere/wiki
         Include /etc/apache2/sites-available/trac
          Options Indexes MultiViews
         # You need something like this to authenticate users
         ScriptAlias /trac/leonardong /usr/share/trac/cgi-bin/trac.cgi
         <Location "/trac/leonardong/login">
         [http://dev.mysql.com/doc/refman/5.0/en/installing-binary.html MySQL binary install]
         /etc/init.d/mysql start
         [http://www.dougsparling.com/comp/howto/linux_java.html]
         must install jdk or jre
  • VendingMachine/세연/재동 . . . . 8 matches
         #include <iostream>
         using namespace std;
         struct drink
          int price, amount;
         class VendingMachine
          int _money;
          int _selectMoney;
          int _insertAmount;
          int _maxNum;
          drink s_drink[5];
          VendingMachine();
          void insertMoney();
          void buyDrink();
          void insertDrink();
          void showMainMenu();
          void showDrinkMenu();
          bool isMoney(int arg);
          bool isBuyableDrink(int arg);
          bool isSelectableDrink(int arg);
         VendingMachine::VendingMachine()
  • WindowsConsoleControl . . . . 8 matches
         #define _UTIL_H_
         #include <windows.h>
         #include <stdio.h>
         #define delay(n) Sleep(n)
         #define randomize() srand((unsigned)time(NULL))
         #define random(n) (rand() % (n))
         void gotoxy(int x, int y);
         int wherex();
         int wherey();
         #include "util.h"
         void gotoxy(int x, int y)
         int wherex()
          CONSOLE_SCREEN_BUFFER_INFO BufInfo;
          GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo);
          return BufInfo.dwCursorPosition.X;
         int wherey()
          CONSOLE_SCREEN_BUFFER_INFO BufInfo;
          GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo);
          return BufInfo.dwCursorPosition.Y;
  • ZP도서관 . . . . 8 matches
         [[include(틀:Deprecated)]]
         || Applications for Windows Fourth Edition || Jeffrey Richter || MS Press || ["1002"] || 원서 ||
         || C++로 배우는 PC 하드웨어 || 김성환 ||.|| ["fnwinter"] || 한서 ||
         || Embedded Systems Building Blocks, ||.|| ... || ["fnwinter"] || 원서 ||
         || Essential System Administration || AEeen Frisch ||O'Reilly || ["혀뉘"], ["ddori"] || 원서 ||
         || inside C# || Tom Archer || 정보문화사 || ["1002"],류상민 || 한서 ||
         || JAVA and XML (1st ed.) || Brett McLaughlin || O'REILLY || 이선우 || 원서 ||
         || Java Network Programming 2nd Ed. ||.|| O'Reilly ||["nautes"]||원서||
         || Programming Python || Mark Lutz || O'REILLY || ddori || 원서 ||
         || Solaris Internals || Jim Mauro, Richard 맥도걸|| Prentice Hall || ["혀뉘"], ["ddori"] || 원서 ||
         || Swing || Matthew Robinson, Pavel Vorobiev || Manning || ["혀뉘"] || 원서 ||
         || The C Programming Language 2nd Ed. || Kernighan, Ritchie || Prentice Hall || ["zennith"] || 원서 ||
         || The Standard ANSI C Library || . || . || ["혀뉘"],["nautes"]|| 원서 ||
         || Windows NT 프로그래밍 || Julian Templeman || 정보문화사 || ["1002"] || 한서. Wrox 번역판 ||
         || Writing Solid Code||.||.||류상민||한서||
         || 자바 네트워크프로그래밍 2ed || Merlin Hughes 외 ||Manning||["혀뉘"],["erunc0"],["구근"]||인포북 번역서||
         || 어셈블리 언어(가장 좋은 어셈책) || IRVINE || 교보문고 || 정직 || 한서||
         || Understanding The Linux || Bovet&Cesati ||.|| ["fnwinter"] || 원서(비쌈)||
         || MicroC/OS-II || ... || . || ["fnwinter"]|| 원서 ||
         || Operating Systems Design and Implemenation || TANENBAUM ||.|| ["fnwinter"] || 원서 ||
  • [Lovely]boy^_^/Diary/12Rest . . . . 8 matches
          * I studied a Grammar In Use Chapter 44,45,46
          * I read a Programming Pearls Chapter 6 a little, because I can't understand very well--;. So I read Chapter 7,8,9,10 roughly. In my opinion, there is no very serious contents.
          * I can treat D3D, DInput, but It's so crude yet.
          * The DInput's message priority is maybe so high... It's very very fast.--; I can't control it.
          * I modify above sentence.--; I test GetAsyncKeyState(), but it's speed is same with DInput.--; How do I do~~~?
          * I made a SnakeBite with Direct3D and DirectInput. I'll add sound with DirectSound, and I'll test DirectX's almost all contents.
          * I saw a very good sentence in 'The Fighting'. It's "Although you try very hard, It's no gurantee that you'll be success. But All succecssfull man have tried."
          * I feel that I am getting laziness.--;
  • 경시대회준비반 . . . . 8 matches
         [경시대회준비반/BigInteger]
         || [StringCompression] ||
         || [CuttingSticks] ||
         || [AdventuresInMoving:PartIV] ||
         || [Counting] ||
         || [CompleteTreeLabeling] ||
         || [ThePriestMathematician] ||
         || [Self-describingSequence] ||
         || [HanoiTowerTroublesAgain!] ||
         || [TheGrandDinner] ||
         || [TheKnightsOfTheRoundTable] ||
         || [TheLargestSmallestBox] ||
         || [IsThisIntegration?] ||
         || [HerdingFrosh] ||
         || [ChainsawMassacre] ||
         [http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=dynProg Dynamic Programming: From novice to advanced] 읽어보세요.
  • 데블스캠프2004/금요일 . . . . 8 matches
         Eclipse : http://zeropage.org/~neocoin/eclipse3.0rc3/eclipse-SDK-3.0RC3-win32.zip
         JDK 1.5 : http://zeropage.org/~neocoin/eclipse3.0rc3/jdk-1_5_0-beta2-windows-i586.exe
          에서는 유래가 없군요. C기반이 아니라, C++(문법), Smalltalk(vm) 의 철학을 반영합니다. Early History 는 마치 제임스 고슬링이 처음 만든것 처럼 되어 있군요. (SeeAlso [http://en.wikipedia.org/wiki/Java_programming_language#Early_history Java Early history]
         --NeoCoin
          저는 발표를 못봐서, 미숙한지 모릅니다. 그러나 PT가 그대로 진행되었다면, 사실과 다른 내용은 충격적이군요. 다음부터라도 반드시 타인에게 감수를 받거나, 자신에게 납득할수 있는 내용을 담으세요. --NeoCoin
          public static void main(String argv[]) {
          System.out.println("Hello world!");
          * JFrame의 setBounds(int x, int y, int weight, int height) 메소드
          -> int 전달인자가 순서대로 창을 띄우는 'x좌표', 'y좌표', '창넓이', '창높이' 를 가리킨다
         import javax.swing.*;
          public static void main(String args[]) {
         package WindowFrame;
         import java.io.InputStreamReader;
         import javax.swing.JFrame;
         public class WindowFrame {
          public WindowFrame(String title, int width, int height) {
          public static int inputInt() throws IOException {
          = new BufferedReader(new InputStreamReader(System.in));
          return Integer.parseInt(breader.readLine());
          public static String inputString() throws IOException {
  • 데블스캠프2009/목요일/연습문제/MFC/서민관 . . . . 8 matches
         #include "stdafx.h"
         #include "testMFC.h"
         #include "testMFCDlg.h"
         #define new DEBUG_NEW
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
         BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
          //{{AFX_DATA_INIT(CTestMFCDlg)
          //}}AFX_DATA_INIT
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         BEGIN_MESSAGE_MAP(CTestMFCDlg, CDialog)
         ON_WM_PAINT()
         BOOL CTestMFCDlg::OnInitDialog()
          CDialog::OnInitDialog();
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
  • 레밍즈프로젝트/그리기DC . . . . 8 matches
         #define BITMAP_OPT_HREVERSE 1
         #define BITMAP_OPT_VREVERSE 2
         #define BITMAP_OPT_HALIGN_CENTER 3
         #define BITMAP_OPT_VALIGN_CENTER 4
          int m_Vreverse;
          int m_Hreverse;
          void init(){
          init();
          void DrawBmp(UINT ITEM, int x, int y, int kRop=SRCCOPY){
          BITMAP m_bitmapInfo;
          newBitmap.GetBitmap(&m_bitmapInfo);
          m_pMemDC->StretchBlt(x-m_bitmapInfo.bmWidth*m_Halign, y-m_bitmapInfo.bmHeight*m_Valign,
          (m_bitmapInfo.bmWidth)*m_Hreverse, (m_bitmapInfo.bmHeight)*m_Vreverse,
          &BitMapDC, 0, 0, m_bitmapInfo.bmWidth, m_bitmapInfo.bmHeight, kRop);
          void setBmpOpt(int kBitMapOption){
          void DrawMaskBmp(UINT MASKITEM, UINT IMGITEM, int x, int y){
          this->DrawBmp(IMGITEM, x, y, SRCPAINT);
  • 비행기게임/BasisSource . . . . 8 matches
          file = os.path.join('data',file)
          for file in files:
          def __init__(self):
          pygame.sprite.Sprite.__init__(self,self.containers)
          self.reloading = 0;
          self.timing = 0;
          def __init__(self, pos, kind, speedy=0) :
          pygame.sprite.Sprite.__init__(self, self.containers)
          self.image = self.images[kind]
          patientOfInducement = 50
          speedIncreaseRateOfY = 0.1
          def __init__(self, pos, playerPosY) :
          pygame.sprite.Sprite.__init__(self, self.containers)
          if self.rect.centery<(self.playerPosY-self.patientOfInducement):
          self.speedy+=self.speedIncreaseRateOfY
          elif self.rect.centery>(self.playerPosY+self.patientOfInducement):
          self.speedy-=self.speedIncreaseRateOfY
          def __init__(self):
          def setContainers(self,arg):
          self.containers = arg
  • 실습 . . . . 8 matches
         국어 점수 int m_nKorean
         영어 점수 int m_nEnglish
         수학 점수 int m_nMath
         총점 int m_nTotal
         평균 int m_dAvg
         입력함수 void Input(char szName[],int nKorean, int nEnglish,int nMath);
         총점 함수 int GetTotal(void);
         등수 함수 int GetRank(void);
         등수 기록 함수 void SetRank(int nRank);
         결과출력 함수 void PrintResult();
         2. 컴파일러 세팅 (Compiler Setting)
         4) ListBox에서 Win32 Console Application을 선택한다.
         8) An empty project를 선택하고, Finish를 선택한다.
         int m_nKorean,m_nEnglish,m_nMath;
         int m_nTotal;
         int m_nRank;
         void Input(char szName[],int nKorean,int nEnglish,int nMath);
         int GetTotal(void);
         int GetRank(void);
         void SetRank(int nRank);
  • 알고리즘3주숙제 . . . . 8 matches
         from [http://www.csc.liv.ac.uk/~ped/teachadmin/algor/d_and_c.html The university of liverpool of Computer Science Department]
         == [BinarySearch] ==
         Consider the following problem: one has a directory containing a set of names and a telephone number associated with each name.
         The directory is sorted by alphabetical order of names. It contains n entries which are stored in 2 arrays:
         Given a name and the value n the problem is to find the number associated with the name.
         Input:
         A set of n points in the plane.
         The distance between the two points that are closest.
         Note: The distance DELTA( i, j ) between p(i) and p(j) is defined by the expression:
         == Integer Multiplication ==
         [http://www.csc.liv.ac.uk/~ped/teachadmin/algor/pic4.gif]
         The (2n)-digit decimal representation of the product x*y = z
         Note: The algorithm below works for any number base, e.g. binary, decimal, hexadecimal, etc. We use decimal simply for convenience.
  • 임시 . . . . 8 matches
         http://cs.sungshin.ac.kr/~jwlee/os/chap9.ppt
         http://infosec.kut.ac.kr/sangjin/class/os/
         SearchIndex: Books
         Business & Investing: 3
         Computers & Internet: 5
         Cooking, Food & Wine: 6
         Engineering: 13643
         Entertainment: 86
         Health, Mind & Body: 10
         Medicine: 13996
         Parenting & Families: 20
         http://www.dasomnetwork.com/~leedw/mywiki/moin.cgi/NetworkProgramming
         http://crab.chungbuk.ac.kr/%7Ejchern/ vi명령어, Windows Network Programming API, ..
         String myIP = inet_ntoa(*(in_addr*) *(gethostbyname(myName))->h_addr_list);
         '''WinSock'''
         In the first stage, you will write a multi-threaded server that simply displays the contents of the HTTP request message that it receives. After this program is running properly, you will add the code required to generate an appropriate response.
         &Operation=ItemSearch &SearchIndex=SportingGoods
         &SearchIndex=Books 고정
         an Amazon Standard Item Number (ASIN)
         API Reference - Search Index Values
  • Chapter II - Real-Time Systems Concepts . . . . 7 matches
         == What is the Real Time? ==
         리얼 타임이라는 말은 Timing 의 correctness (정확성)에 의해 결정되는 말이다. 이러한 리얼타임은 대략 두가지 부류를 가지고 있다.
         Food processing, Chemical plants, Engine controls, Antilock braking systems, Fax machines, ETC
         작은 시스템에서는 시스템의 효율성을 위해 보단 간편하고 일반적인 디자인을 사용한다고 한다. 실제로 어플리케이션이 작동하는 부분을 Background System이라고 하며 ISR (interrupt service rountines) 라고 불리우는 인터럽트 부분을 Foreground system이라고 한다.
         태스크에 의해 쓰여지는 빈 공간을 말한다. 이러한 리소스는 I/O , Printer , Memory , KeyBoard 가 될 수 있으며 다른 기타 자원도 있다.
         === Multitasking ===
         RUNNING :: 지금 활동 중인 상태[[BR]]
         WAITING :: 이벤트를 기다리며 휴식 중인 상태[[BR]]
         ISR(interrupted) :: 인터럽트를 수행 중인 상태 [[BR]]
         int Temp; // 언제 바뀔지 모르는 전역 변수
         void swap(int *x,int *y)
         === Round Robin Scheduling ===
         Time Slicing 이라고도 한다. 또한 이 수행 시간을 quantum 이라고 한다.
         === Priority Inversions ===
         === Assigning Task Priorities ===
          * Rate Monotonic Scheduling (RMS)
         === Intertask Communication ===
         === Interrupts ===
         === Interrupt Latency ===
         === Interrupt Response ===
  • CivaProject . . . . 7 matches
         #ifndef CIVA_CIVADEF_INCLUDED
         #define CIVA_CIVADEF_INCLUDED
         #include <boost/smart_ptr.hpp>
         using boost::shared_ptr;
         using boost::shared_ptr;
         //#define Array_Handle(ElementType) boost::shared_ptr< civa::lang::Array<ElementType> >
         class String;
         typedef shared_ptr<String> String_Handle;
         #endif // CIVA_CIVADEF_INCLUDED
         #ifndef CIVA_IO_SERIALIZABLE_INCLUDED
         #define CIVA_IO_SERIALIZABLE_INCLUDED
         #include "../lang/Object.h"
         #endif // CIVA_IO_SERIALIZABLE_INCLUDED
         #ifndef CIVA_LANG_ARRAY_INCLUDED
         #define CIVA_LANG_ARRAY_INCLUDED
         #include "Object.h"
          int length;
          Array(int length) throw() : length(length) {
          for (index = 0; index < length; index++) {
          values[index] = newValuse[index];
  • ConcreteMathematics . . . . 7 matches
         == Concrete Mathematics ==
         === In finding a closed-form expression for some quantity of interest like T<sub>n</sub> we go Through three stages. ===
         1. Look at small cases. This gives us insight into the problem and helps us in stages 2 and 3.
         2. Find and prove a mathematical expression for the quantity of interest. (Induction so on..)
         3. Find and prove a closed form for our mathematical expression.
         [The Tower of Hanoi]
         [Lines In The Plane]
  • HowManyZerosAndDigits/임인택 . . . . 7 matches
         import java.io.InputStreamReader;
         import java.util.LinkedList;
          private int _n;
          private int _b;
          private int _fact;
          private LinkedList numbers;
          public HowManyZerosAndDigits(int n, int b) {
          numbers = new LinkedList();
          System.out.println(howManyZeros() + " " + numDigit());
          public int factorial(int n) {
          int result = 1;
          for(int i=1; i<n+1; ++i) {
          int quotient = _fact / _b;
          int remainder = _fact % _b;
          if( remainder != 0 )
          numbers.add(new Long(remainder));
          remainder = quotient % _b;
          if( !(quotient==0 && remainder==0)) // 제일 상위자리가 0인 경우는 넣지 않는다.
          numbers.add(new Long(remainder));
          public int howManyZeros(long num) {
  • InterWiki . . . . 7 matches
         List of valid InterWiki names this wiki knows of:
          [[InterWiki]]
         Other Wikis:
         MoinMoin marks the InterWiki links in a way that works for the MeatBall:ColourBlind and also is MeatBall:LynxFriendly by using a little icon with an ALT attribute. If you hover above the icon in a graphical browser, you'll see to which Wiki it refers. If the icon has a border, that indicates that you used an illegal or unknown BadBadBad:InterWiki name (see the list above for valid ones). BTW, the reasoning behind the icon used is based on the idea that a Wiki:WikiWikiWeb is created by a team effort of several people.
         See the wiki:MeatBall/InterWiki page on wiki:MeatBall:MeatballWiki for further details.
         ZeroWiki에서는 InterMap 페이지 수정으로 InterWiki를 조작할 수 있습니다.
  • InvestMulti - 09.22 . . . . 7 matches
         nations={'KOREA':0 ,'JAPAN':700 , 'CHINA':300, 'INDIA':100}
         items={'INT':400 , 'DOUBLE':800}
          print '*'*25
          print '1. Current Nation states '
          print '2. My business '
          print '3. Move to another Nation '
          print '4. Invest to this Nation '
          print '5. View Ranking '
          print '6. Earn Money '
          print '*'*25
          print '*'*10
          print '1. JAPAN '
          print '2. CHINA '
          print '3. INDIA '
          print '*'*10
          select = input('Select Menu -->')
          user[t2] = 'CHINA'
          user[t2] = 'INDIA'
         def Invest():
          print 'Current Nation is : ',user[t2]
  • JSP/FileUpload . . . . 7 matches
          String contentType = request.getContentType();
          System.out.println("Content type is :: " +contentType);
          if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0))
          DataInputStream in = new DataInputStream(request.getInputStream());
          int formDataLength = request.getContentLength();
          int byteRead = 0;
          int totalBytesRead = 0;
          byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
          String file = new String(dataBytes);
          String saveFile = file.substring(file.indexOf("filename="") + 10);
          saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
          saveFile = saveFile.substring(saveFile.lastIndexOf("\") + 1,saveFile.indexOf("""));
          //out.print(dataBytes);
          int lastIndex = contentType.lastIndexOf("=");
          String boundary = contentType.substring(lastIndex + 1,contentType.length());
          //out.println(boundary);
          int pos;
          pos = file.indexOf("filename="");
          pos = file.indexOf("\n", pos) + 1;
          pos = file.indexOf("\n", pos) + 1;
  • JavaHTMLParsing/2011년프로젝트 . . . . 7 matches
          import java.io.InputStream;
          import java.io.InputStreamReader;
          public static void main(String args[]){
          InputStream is;//URL접속에서 내용을 읽기위한 Stream
          InputStreamReader isr;
          //내용을 읽어오기위한 InputStream객체를 생성한다..
          is = connection.getInputStream();
          isr = new InputStreamReader(is);
          String buf = null;
          buf = br.readLine();
          System.out.println(buf);
          System.err.println("잘못된 URL입니다. 사용법 : java URLConn http://hostname/path]");
          System.err.println("IOException " + ioe);
          ioe.printStackTrace();
  • JavaScript/2011년스터디/김수경 . . . . 7 matches
          <link rel="stylesheet" type="text/css" href="2011.css" />
          for(var i in score){
          for(var j in score[i]){
          * [http://ejohn.org/blog/simple-javascript-inheritance/ Simple JavaScript Inheritance]
          init: function(isDancing){
          this.dancing = isDancing;
          return this.dancing;
         var Ninja = Person.extend({
          init: function(){
          // Call the inherited version of dance()
          swingSword: function(){
         var n = new Ninja();
         n.swingSword(); // => true
         p instanceof Person && p instanceof Class &&
         n instanceof Ninja && n instanceof Person && n instanceof Class
          * Simple Class Creation and Inheritance
          var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
          // The base Class implementation (does nothing)
          // Create a new Class that inherits from this class
          // Instantiate a base class (but only create the instance,
  • JollyJumpers/iruril . . . . 7 matches
         import java.io.InputStreamReader;
          int [] jumpersArray;
          int length;
          int differenceValue;
          // input()은 getIntArray()에서 사용
          public String input()
          BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
          String input = "";
          input = in.readLine();
          e.printStackTrace();
          return input;
          public int [] getIntArray()
          String buf = input();
          String [] stringArray = buf.split(" ");
          length = stringArray.length;
          int [] intArray = new int [length];
          for(int i = 0; i < length; i++ )
          intArray[i] = Integer.parseInt(stringArray[i]);
          return intArray;
          public void inputJumpers()
  • MFC/CollectionClass . . . . 7 matches
         #define _MFC_
         || List || 순서가 있는 데이터 항목의 집합. Doubly-linked list 로 구현되어 있다. 데이터의 삽입, 삭제가 빠르지만 하나하나의 데이터를 검색하는 속도는 느리다. ||
          || {{{~cpp GetAt(index)}}} || 인덱스로 지정된 배열의 객체를 리턴한다. ||
          || {{{~cpp operator[index]}}} || GetAt()과 동일하게 작동하며, built-in 배열과 동일한 사용법을 제공한다. [[BR]] {{{~cpp pointArray.SetAt}}}(3, NewPoint)[[BR]]{{{~cpp pointArray[3]=NewPoint}}} ||
          || {{{~cpp InsertAt()}}} || 인자로 전달된 객체를 배열의 특정 인덱스에 삽입한다. ||
          || {{{~cpp InsertBefore(POSITION, ObjectType)}}} || 두번째 인자의 객체를 첫번째 인자의 위치의 앞부분에 삽입한다. ||
          || {{{~cpp InsertAfter(POSITION, ObjectType)}}} || 알아서 =.=;; ||
          || {{{~cpp GetHeadPosition()}}} || 리스트의 맨 처음에대한 POSITION값을 리턴한다. ||
          || {{{~cpp Find(ObjectType)}}} || 인자로 받은 객체를 검색해서 그 위치의 POSITION값을 리턴한다. 어드레스 수준에서 비교가 행해진다. ||
          || {{{~cpp FindIndex()}}} || 인자로 받은 int 형의 색인값을 기준으로 그곳의 POSITION 형태의 값을 리턴한다. 최초 요소는 인덱스 0을 갖는다. ||
          맵은 객체와 키의 조합을 저장한다. 키는 맵에 할당된 메모리의 특정 블록안에 객체가 저장되어 있는지를 결정하는데 사용된다. 키를 맵안의 엔트리의 어드레스로 계산될 수 있는 정소로 변환하는 과정을 해실(Hashing)이라고 한다.
          || {{{~cpp GetHead()}}} || 리스트의 가장 앞에있는 포인터를 리턴. IsEmpty() 검사 필요. ||
          || {{{~cpp GetHeadPosition()}}} || 리스트의 맨 처음에대한 POSITION값을 리턴한다. ||
          || {{{~cpp InsertBefore(POSITION, ObjectType)}}} || 두번째 인자의 객체를 첫번째 인자의 위치의 앞부분에 삽입한다. ||
          || {{{~cpp InsertAfter(POSITION, ObjectType)}}} || 알아서 =.=;; ||
          || {{{~cpp Find(ObjectType)}}} || 인자로 받은 객체를 검색해서 그 위치의 POSITION값을 리턴한다. 어드레스 수준에서 비교가 행해진다. ||
          || {{{~cpp FindIndex()}}} || 인자로 받은 int 형의 색인값을 기준으로 그곳의 POSITION 형태의 값을 리턴한다. 최초 요소는 인덱스 0을 갖는다. ||
  • MineSweeper/황재선 . . . . 7 matches
         == MineSweeper ==
         === {{{~cpp MineSweeper.java}}} ===
         import java.io.InputStreamReader;
          * TODO To change the template for this generated file go to
          * Window - Preferences - Java - Code Style - Code Templates
         public class MineSweeper {
          String [][] mineArr;
          public int [] inputSize() {
          String input = input();
          String [] array = input.split(" ");
          int len = array.length;
          int [] intArray = new int[len];
          for (int i = 0; i < len; i++)
          intArray[i] = Integer.parseInt(array[i]);
          return intArray;
          public String[][] inputChar(int []array) {
          int row = array[0];
          int col = array[1];
          mineArr = new String[row][col];
          for(int i = 0; i < row; i++) {
  • NSIS . . . . 7 matches
         === Opening Statement ===
         보통 프로그램을 개발하고 나서 '만들었다' 로 끝나는 경우가 많다. 하지만, 정작 배포때에는 할일이 많다. 특히 제어판 프로그램 등록/삭제 에 등록되는 방식이라던지, 레지스트리를 건드린다던지, Program Files 폴더에 복사한다던지. 이 경우에는 보통 전용 Installer 프로그램을 쓰게 되지만, 아직 제대로 써본 적이 없었던 것 같다.
          * http://forums.winamp.com/forumdisplay.php?forumid=65 - nsis discussion
          * 하나의 Install 화일 생성. 완료. (뿌리자~ -_-v)
         NSIS installer들은 'MakeNSIS' 프로그램에 의해서 NSI script (.NSI) 를 컴파일함으로서 만들어진다.
         Makensis [/Vx] [/Olog] [/LICENSE] [/PAUSE] [/NOCONFIG] [/CMDHELP [command]] [/HDRINFO] [/CD] [/Ddefine[=value] ...]
          2 : warnings and errors
          3 : info, warnings, and errors
          * /PAUSE - Makensis 가 종료되기 전 중간에 일시정지해준다. 이는 Windows 에서 직접 실행할 때 유용하다.
          * 표현하고자하는 string 에 공백이 있으면 따옴표를 이용한다.
          MessageBox MB_OK "I'll be happy" ; this one puts a ' inside a string
          MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string
          MessageBox MB_OK `And he said to me "I'll be fucked!"` ; this one puts both ' and "s inside a string:
          "$INSTDIR\source\zip2exe\zip2exe.dsw"
          "Remove all files in your NSIS directory? (If you have anything \
         NSIS 의 windows installer 버전을 설치하면 NSIS.CHM 화일이 같이 있다.
         http://nsis.sourceforge.net/archive/nsisweb.php?page=111&instances=0,11
         http://nsis.sourceforge.net/archive/nsisweb.php?page=633&instances=0,110
         ;move system addtinoal dlls to system folder
         Rename "$INSTDIR\MSVCP60.dll" "$SYSDIR\MSVCP60.dll"
  • ProjectPrometheus/AT_RecommendationPrototype . . . . 7 matches
          def __init__(self):
          self.startPoint = 0
          for book in aBookList:
          point = 0
          point += self.bookViewList[aBook] * WEIGHT_VIEW
          point += self.lightReviewBookList[aBook] * WEIGHT_LIGHTREVIEW
          point += self.heavyReviewBookList[aBook] * WEIGHT_HEAVYREVIEW
          return point
          def _addBookRelation(self, aNewBook, anIncrementPoint):
          for book in self.bookList:
          def _editBookRelation(self, anEditBook, anIncrementPoint):
          for book in self.bookList:
          anEditBook.addBookRelation(book, anIncrementPoint)
          book.addBookRelation(anEditBook, anIncrementPoint)
          def _bookAction(self, aBook, anIncrementPoint):
          if not aBook in self.bookList:
          self._addBookRelation(aBook, anIncrementPoint)
          self._editBookRelation(aBook, anIncrementPoint)
          def lightReviewBook(self, aBook, aPoint):
          self.lightReviewBookList[aBook] = aPoint
  • Refactoring/DealingWithGeneralization . . . . 7 matches
         = Chapter 11 Dealing With Generalization =
          * Two subclasses have the same field.[[BR]]''Move the field to the superclass.''
          * You have methods with identical results on subclasses.[[BR]]''Move them to the superclass''
          * You have constructors on subclasses with mostly identical bodies.[[BR]]''Create a superclass constructor; class this from the subclass methods.''
          public Manager (String name, String id, int grade) {
         public Manager (String name, String id, int grade) {
          * A field is used only by some subclasses.[[BR]]''Move the field to those subclasses.''
          * A class has features that are used only in some instances.[[BR]]''Create a subclass for that subset of features.''
          * You have two classes with similar features.[[BR]]''Create a superclass and move the common features to the superclass.''
         == Extract Interface ==
          * Several clients use the same subset of a class's interface, or two classes have part of their interfaces in common.[[BR]]''Extract the subset into an interface.''
         http://zeropage.org/~reset/zb/data/ExtractInterface.gif
          * A superclass and subclass are not very different.[[BR]]''Merge them together.''
          * You have two methods in subclasses that perform similar steps in the same order, yet the steps are different.[[BR]]''Get the steps into methods with the same signature, so that the original methods become the same. Then you call pull them up.''
         == Replace Inheritance with Delegation ==
          * A subclass uses only part of a superclasses interface or does not want to inherit data.[[BR]]''Create a field for the superclass, adjust methods to delegate to the superclass, and remove the subclassing.''
         http://zeropage.org/~reset/zb/data/ReplaceInheritanceWithDelegation.gif
         == Replace Delegation with Inheritance ==
          * You're using delegation and are ofter writing many simple delegations for the entire interface.[[BR]]''Make the delegating class a subclass of the delegate.''
         http://zeropage.org/~reset/zb/data/ReplaceDelegationWithInheritance.gif
  • RelationalDatabaseManagementSystem . . . . 7 matches
         = Definition =
         A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd.
         The fundamental assumption of the relational model is that all data are represented as mathematical relations, i.e., a subset of the Cartesian product of n sets. In the mathematical model, reasoning about such data is done in two-valued predicate logic (that is, without NULLs), meaning there are two possible evaluations for each proposition: either true or false. Data are operated upon by means of a relational calculus and algebra.
         The relational data model permits the designer to create a consistent logical model of information, to be refined through database normalization. The access plans and other implementation and operation details are handled by the DBMS engine, and should not be reflected in the logical model. This contrasts with common practice for SQL DBMSs in which performance tuning often requires changes to the logical model.
         The basic relational building block is the domain, or data type. A tuple is an ordered multiset of attributes, which are ordered pairs of domain and value. A relvar (relation variable) is a set of ordered pairs of domain and name, which serves as the header for a relation. A relation is a set of tuples. Although these relational concepts are mathematically defined, they map loosely to traditional database concepts. A table is an accepted visual representation of a relation; a tuple is similar to the concept of row.
         The basic principle of the relational model is the Information Principle: all information is represented by data values in relations. Thus, the relvars are not related to each other at design time: rather, designers use the same domain in several relvars, and if one attribute is dependent on another, this dependency is enforced through referential integrity.
  • Slurpys/강인수 . . . . 7 matches
         function HasDorEAtFirst (const S: String): Boolean;
         function HasGAtLast (const S: String; APos: Integer): Boolean;
         function FindF (const S: String): Integer;
         function IsSlump (const S: String): Boolean;
         function IsSlimp (const S: String): Boolean;
         function IsSlurpy (const S: String): Boolean;
         function HasDorEAtFirst (const S: String): Boolean;
         begin
         function HasGAtLast (const S: String; APos: Integer): Boolean;
         begin
         function FindF (const S: String): Integer;
          i: Integer;
          FirstFind: Boolean;
         begin
          FirstFind := False;
          if S[2] <> 'F' then
          begin
          begin
          if S[i] = 'F' then
          begin
  • Spring/탐험스터디/wiki만들기 . . . . 7 matches
         === Spring Framework ===
         === Spring Security ===
         Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
          String name;
          if (principal instanceof UserDetails) {
          name = ((UserDetails)principal).getUsername();
          name = principal.toString();
          1. Spring dependency injection을 이용하는 법
         public String write(@RequestParam("title") String title, @RequestParam("contents") String contents, Model model, Principal principal) {
         page.edit(contents, userRepository.get(principal.getName()));
          * spring security tab library
          * spring security에 관련된 기능들을 html/js에서 쓸 수 있다.
         <%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
          <input id="contents_edit" type="textarea" class="page_edit" value="${page.contents}" />
          <sec:authorize url="/login">
          * Spring Security의 Role Voter는 "ROLE_" 접두어를 사용한 접근 속성만 처리한다. 단 접두어는 커스터마이징이 가능하다.
          * ORM(Object Relation Mapping) 프레임워크. Java persistence, EJB3.0을 같이 알면 좋다.
         String html = new PegDownProcessor().markdownToHtml("markdown text");
          * 아무튼 pegdown은 무지무지 쉬웠는데(new Pegdown().markdownToHTML(/* String 콘텐츠 */) 적용하는데까지 시간이 오래걸렸다. 하나 고치면 다른 에러가 나고 에러랑 스무고개했음ㅋㅋ
          * 좀 오래한 Spring, Hibernate도 어려움. CGLib, Spring Security, JSP, Session 찾아봐야겠다.
  • TestDrivenDatabaseDevelopment . . . . 7 matches
         TDD 로 Database Programming 을 진행하는 방법 & 경험들.
          private String writer;
          private String title;
          private String body;
          public void setUp() throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
          initConnection();
          repository.initialize();
          uninitConnection();
          String writerEdited = "writerEdited";
          String titleEdited = "titleEdited";
          String bodyEdited = "bodyEdited";
          public void testArticleTableInitialize() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
          repository.initialize();
          String articleTableName = "articlelist";
          String sqlStr="select id, writer, title, body from " + articleTableName;
          private void initConnection() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
          String hostname = "localhost";
          String dbname = "reset";
          String userId = "reset";
          String userPass = "reset";
  • TheJavaMan/달력 . . . . 7 matches
         import javax.swing.*;
          public void init()
          Container contentPane = getContentPane();
          int year;
          int month;
          int days;
          tfYear.setText(String.valueOf(Calendar.getInstance().get(Calendar.YEAR)));
          cbMonth.setSelectedIndex(Calendar.getInstance().get(Calendar.MONTH));
          int weekDay = (1 + (year - 1) + ((year - 1) / 4) - ((year - 1) / 100) + ((year - 1) / 400)) % 7;
          for(int i = 0 ; i < month - 1 ; i++)
          showPanel.add(new JLabel("일", SwingConstants.CENTER));
          showPanel.add(new JLabel("월", SwingConstants.CENTER));
          showPanel.add(new JLabel("화", SwingConstants.CENTER));
          showPanel.add(new JLabel("수", SwingConstants.CENTER));
          showPanel.add(new JLabel("목", SwingConstants.CENTER));
          showPanel.add(new JLabel("금", SwingConstants.CENTER));
          showPanel.add(new JLabel("토", SwingConstants.CENTER));
          for (int i = 0; i < weekDay; i++)
          for (int i = 0; i < days; i++)
          showPanel.add(new JLabel(String.valueOf(i + 1), SwingConstants.CENTER));
  • TheJavaMan/비행기게임 . . . . 7 matches
         ||Plane||.||hp,speed,move,misile||.||
          * 비행기 이미지 myplane안으로 넣기
         ||image||link||
         ||플레이어 비행기||Upload:playerPlane.bmp||
         ||적 비행기||Upload:enemyPlane.bmp||
         Upload:starPlane.zip
          * DoubleBuffering , Thread 등을 적절하게 이용해보세요~* - [임인택]
         Upload:PlaneGame1.0.jar - 미사일 쏘기, 적기 움직임(단순), 적기와 충돌 검사
         Upload:PlaneGame1.1.jar - 달라진건 속도뿐.
         [TheJavaMan]
  • UML/CaseTool . . . . 7 matches
         === Diagramming ===
         ''Diagramming'' in this context means ''creating'' and ''editing'' UML [[diagram]]s; that is diagrams that follow the graphical notation of the Unified Modeling Language.
         The diagramming part of the Unified Modeling Language seems to be a lesser debated part of the UML, compared to code generation.
         The UML diagram notation evolved from elderly, previously competing notations. UML diagrams as a means to draw diagrams of - mostly - [[Object-oriented programming|object oriented]] software is less debated among software developers. If developers draw diagrams of object oriented software, there is widespread consensus ''to use the UML notation'' for that task. On the other hand, it is debated, whether those diagrams are needed at all, on what stage(s) of the software development process they should be used and whether and how (if at all) they should be kept up-to date, facing continuously evolving program code.
         ''[[Code generation]]'' in this context means, that the user creates UML diagrams, which have some connoted model data, from which the UML tool derives (through a conversion process) parts or all of the [[source code]] for the software system that is to be developed. Often, the user can provide some skeleton of the program source code, in the form of a source code [[template]] where predefined tokens are then replaced with program source code parts, emitted by the UML tool during the code generation process.
         There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML. On the other hand, the idea of completely leaving the "code level" and start "programming" on the UML diagram level is quite debated among developers, and at least, not in such widespread use compared to other [[software development]] tools like [[compiler]]s or [[Configuration management|software configuration management systems]]. An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. There are developers that even state that "the Code ''is'' the design" (articles [http://www.developerdotstar.com/mag/articles/reeves_design_main.html] by Jack W. Reeves [http://www.bleading-edge.com/]).
         === Reverse engineering ===
         ''Reverse engineering'' in this context means, that the UML tool reads program source code as input and ''derives'' model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "[[Reverse engineering]]").
         Reverse engineering encloses the problematic, that diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some ''random layout'' of the graphical symbols of the UML notation or use some automatic ''layout algorithm'' to place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of an UML tool has to manually edit those automatically generated diagrams to attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams. There are also language features of some [[programming language]]s, like ''class-'' or ''function templates'' of the programming language [[C plus plus|C++]], which are notoriously hard to convert automatically to UML diagrams in their full complexity.
         === "Round trip" engineering ===
         There are UML tools that use the attribute ''round trip'' (sometimes also denoted as ''round trip engineering'') to connote their ability to keep the ''source code'', the ''model data'' and the corresponding ''UML diagrams'' ''in sync''.
         This means that the user should be able to change either the ''model data'' (together with the corresponding diagrams) or the ''program source code'' and then the UML tool updates the other part automatically.
         Rational Software Architect, Together가 유명하고, 오픈 소스로는 Argo, Violet 이 유명하다.
         UML 케이스 툴과 달리 Visio 같은 경우에는 Diagramming 기능만을 제공한다. Diagramming Tool 이라고 분류하는 듯하다.
  • VisualStudio . . . . 7 matches
         VisualStudio 는 Microsoft 에서 개발한 Windows용 IDE 환경이다. 이 환경에서는 Visual C++, Visual Basic, Visual C# 등 여러 언어의 개발환경이 함께하며, 최신 버전은 [Visual Studio] 2012이다.
         VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
         VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, [:Debugging Debugger 사용], [Profiling], Goto Definition
         === IntelliSense 기능이 제대로 작동하지 않을때 ===
         VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다.
         C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다.
         #define _CBOARDBASE_H_
          void initBoard();
          void initBoard();
         == [Profiling] ==
          [C++Profiling]
         예제 : ProjectTheCell (현재 진행중인 Othello Project)
          * Project(프로젝트) » Settings(설정)를 선택합니다.
          * Link(연결) 탭을 선택합니다.
          * Category(카테고리) 드롭 다운 메뉴에서 Input(입력)을 선택합니다.
          * Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Include Files(파일 포함)를 선택하고 include 파일이 위치한 디렉토리(예: C:\라이브러리폴더\include)를 입력합니다.
          * Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Executable Files(실행 파일)를 선택하고 실행 파일이 위치한 디렉토리(예: C:\라이브러리폴더\bin)를 입력합니다.
          * 기본 도구 표시줄에서 Project(프로젝트) » Properties(속성) » Linker(링커) » Input(입력)을 선택하고 "Additional Dependencies(추가 의존관계)" 행에 필요한 라이브러리 파일 (예: abcd.lib)을 추가합니다.
         Reference : [http://support.intel.com/support/kr/performancetools/libraries/mkl/win/sb/cs-017282.htm Intel 라이브러리 연결 요령]
         [[include(틀:IDE)]] [도구분류]
  • WinampPluginProgramming/DSP . . . . 7 matches
         winamp SDK 를 받으면 sample 로 있는 dspecho 에 대한 분석.
         // Winamp test dsp library 0.9 for Winamp 2
         // Copyright (C) 1997, Justin Frankel/Nullsoft
         // Feel free to base any plugins on this "framework"...
         #include <windows.h>
         #include <commctrl.h>
         #include "dsp.h"
         #include "resource.h"
         // avoid stupid CRT silliness
         BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
         int g_pitch=100;
         int delta = 1;
         // pitch control window
         // auxilary pitch buffer (for resampling from)
         int pitch_buffer_len=0;
         int quit_pitch=0;
         winampDSPModule *getModule(int which);
         void config(struct winampDSPModule *this_mod);
         int init(struct winampDSPModule *this_mod);
         void quit(struct winampDSPModule *this_mod);
  • 타도코코아CppStudy/0728 . . . . 7 matches
          * TableDrivenProgramming
          ZeroWiki:DevelopmentinWindows
         #include <iostream>
         using namespace std;
         class Plane
         class BBPlane : public Plane
         class SmokPlane : public Plane
         int main()
          Plane* plane;
          plane = new SmokPlane;
          plane->Attack();
          delete plane;
         || 마방진(홀수) || [CherryBoy] || Upload:MaBangJin_CherRy.cpp || . ||
  • 프로그래밍/DigitGenerator . . . . 7 matches
          private static int processOneCase(String line) {
          int number = Integer.parseInt(line);
          for(int i = 1; i < number; i++) {
          int bitSum = 0;
          String str = Integer.toString(i);
          String [] bits = str.split("");
          for(String each : bits) {
          continue;
          bitSum += Integer.parseInt(each);
          public static void main(String[] args) {
          String line = br.readLine();
          int testCase = Integer.parseInt(line);
          for(int i = 0; i < testCase; i++) {
          line = br.readLine();
          int result = processOneCase(line);
          System.out.println(result);
          e.printStackTrace();
          e.printStackTrace();
  • 3N+1Problem/1002_2 . . . . 6 matches
         도저히 수열스럽지 않아서 다시 숫자들 간의 관계를 이리 적어보던중, 지난번의 UglyNumber 에서의 문제접근법(DynamicProgramming)을 해봄. 혹시 앞의 계산값이 뒤의 계산에 이용되지 않을까 생각을 해보다.
         숫자들을 주욱 나열해보면서 해당 n 값 대비 count cycle Length 의 값은 고정적일것이라는 점과, 이 값을 일종의 caching 을 하여 이용할 수 있겠다는 생각이 들다.
          def __init__(self):
          return [self.value(each) for each in range(i,j)]
          def maxCycleLengthInRange(self,i,j):
          for each in range(i,j):
          >>> [c.value(n) for n in range(1,5)]
          >>> c.maxCycleLengthInRange(1,10)
          >>> c.maxCycleLengthInRange(100,200)
          >>> c.maxCycleLengthInRange(201,210)
          >>> c.maxCycleLengthInRange(900,1000)
         def main():
         def main2():
          print c.maxCycleLengthInRange(1,999999)
         if __name__=="__main__":
          psyco.bind(main2)
          main2()
          print "time :", end-start
  • 5인용C++스터디/윈도우에그림그리기 . . . . 6 matches
         GDI(Graphics Device Interface)란 윈도우의 클라이언트 영역에 그리기를 하는데 사용되는 함수이다. 비디오 출력과 프린터에 그래픽 출력을 책임지고 있는 부분이다. 사용자가 Windows용으로 작성하는 응용 프로그램이 GDI를 사용하여 시각적인 정보를 출력할 뿐 아니라 Windows 자체도 GDI를 사용하여 메뉴, 스크롤 바, 아이콘, 그리고 마우스 커서 같은 사용자 인터페이스 아이템의 시각적인 출력을 수행한다.
         DC(Device Context)는 GDI에 의해 내부적으로 관리되는 데이터 구조체이며 '''그래픽 작업을 하기 위해서 필요한 것'''이다. 그림을 그리고자 할 때에는 반드시 먼저 DC에 대한 핸들을 얻어야 한다. 프로그램에 이 핸들을 주는 것으로 Windows는 사용자가 그 장치를 사용할 수 있도록 허가해 준다. 그러면 핸들을 GDI 함수의 인자로 사용하여 현재 그리고자 하는 장치를 Windows가 식별할 수 있도록 한다.
         DC 핸들을 얻고 해제하는 가장 일반적인 방법은 WM_PAINT 메시지 처리 도중 BeginPaint와 EndPaint 호출을 사용하는 것이다.
         hdc = BeginPaint (hwnd, &ps);
         EndPaint (hwnd, &ps);
         변수 ps는 PAINTSTRUCT 형식의 구조체이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
         == WM_PAINT ==
         보통 프로그램이 WinMain에서 UpdateWindow를 호출할 때 발생한다. 이것은 윈도우 프로시저로 하여금 클라이언트 영역에 무엇인가를 그리게 한다.
         WM_PAINT 처리는 거의 항상 BeginPaint에 대한 호출로 시작된다.
         hdc = BeginPaint (hwnd, &ps);
         그리고 다음과 같이 EndPaint를 호출하여 끝난다.
         EndPaint (hwnd, &ps);
         두 경우에 있어서 첫번째 인자는 프로그램의 윈도우에 대한 핸들이다. 두번째 인자는 PAINTSTRUCT 형식의 구조체에 대한 포인터이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
         WndProc은 BeginPaint를 호출하고 난 후 GetClientRect를 호출한다.
         #include <windows.h>
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
          char szTitleName[]="Drawing Line";
          wc.hInstance=hInst;
          hWnd=CreateWindow(szClassName,szTitleName, WS_OVERLAPPEDWINDOW,100,90,320,240,NULL,NULL,hInst,NULL);
  • ACM_ICPC . . . . 6 matches
         = ACM International Collegiate Programming Contest =
          * [http://acm.kaist.ac.kr/2000/standing.html 2000년]
          * [http://acm.kaist.ac.kr/2001/standing.html 2001년]
          * [http://acm.kaist.ac.kr/2002/standing.html 2002년]
          * [http://acm.kaist.ac.kr/2005/standing2005.html 2005년 스탠딩]
          * [http://acm.kaist.ac.kr/2007/standing2006.html 2006년 스탠딩] - ZeroPage Rank 17
          * [http://acm.kaist.ac.kr/2007/standing2007.html 2007년 스탠딩] - ZeroPage Rank 30
          * [http://acm.kaist.ac.kr/2009/rank/new_summary_full.html 2009년 스탠딩] - No attending
          * [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=7&t=129 2010년 스탠딩] - No attending
          * [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=35&t=5728 2014년 스탠딩] - ZeroPage Rank 32 (CAU - Rank 18, including Abroad team)
          * [http://icpckorea.org/2015/REGIONAL/scoreboard.html 2015년 스탠딩] - 1Accepted1Chicken Rank 42 (CAU - Rank 18, including Abroad team)
          * [http://icpckorea.org/2016/REGIONAL/scoreboard.html 2016년 스탠딩] - Zaranara murymury Rank 31 (CAU - Rank 13, including Abroad team)
          * [http://icpckorea.org/2017/regional/scoreboard/ 2017년 스탠딩] - NoMonk, Rank 62 (CAU - Rank 35, including Abraod team)
          * [http://icpckorea.org/2018/regional/scoreboard/ 2018년 스탠딩] - ZzikMukMan Rank 50 (CAU - Rank 28, including Abroad team)
          * [http://icpckorea.org/2019/regional/scoreboard/ 2019년 스탠딩] - TheOathOfThePeachGarden Rank 81(CAU - Rank 52, including Abroad team)
          * [http://static.icpckorea.net/2020/scoreboard_terpin/ 2020년 스탠딩] - Decentralization Rank 54(CAU - Rank 35)
         || 네트워크플로우 || . || Big Integer || . ||
          * team 'TheOathOfThePeachGarden' 본선 81위(학교 순위 52위) : [한재현], [김영기], [오준석]
         == ExternalLink ==
         , [ACM_ICPC/PrepareAsiaRegionalContest], [(zeropage)ProgrammingContest]
  • ACM_ICPC/2011년스터디 . . . . 6 matches
          * Anything else..
          * ShortCoding 책이 아마 ZeroPage 책장에 있을텐데… 후기를 모아 정회원이 되세요 ㅋㅋㅋㅋㅋ - [김수경]
          * 제 코드에 무엇이 문제인지 깨달았습니다. 입출력이 문제가 아니었어요. 숫자 범위 괜히 0이거나 3000 이상이면 "Not jolly" 출력하고 break하니까 이후에 더 적은 숫자가 들어온 경우가 무시당해서 Wrong Answer(출력 하든 안하든, 0 제외하고 3000 이상일 때만 하든 다 Wrong..;ㅅ;) 입력을 하지 않을 때까지 계속 받아야 하는데, 임의로 끊었더니 그만..... 그리고 continue로 해도 마찬가지로 3000을 제외하고 입력 버퍼에 남아있던 것들이 이어서 들어가서 꼬이게 되는! Scanner을 비우는 거는 어찌 하는 걸까요오;ㅁ;? 쨋든 그냥 맘 편하게 조건 지우고 Accepted ㅋㅋ 보증금 및 지각비 관련 내용은 엑셀에 따로 저장하였습니다. - [강소현]
         || [권순의] || 1298 || The Hardest Problem Ever ||The Easiest Problem Ever -ㅅ- ||
         || [정의정] || 2970 || The lazy programmer ||물론 제가 게으르다는 말은 아닙니다. ||
          * [TheHardestProblemEver/권순의]
          * PIGS(1149)와 The lazy programmer(2970) 중에서 하나 풀어오기
          * 재귀함수와 백트래킹, Dynamic Programming에 난항을 겪어 최적해구하는 문제에서 고전했습니다.
          * 그래서 [정진경]군이 157번[http://koistudy.net/?mid=prob_page&NO=157 The tower of Hanoi]문제를 풀고, 설명한 후 [Mario]문제(선형적인 문제)를 풀게하여 연습을 한 후 다시 파닭문제에 도전하게 되었습니다.
          * [김태진] - 진경이 출생의 비밀..은 아니고 KOI 은상의 배경이 된, 세 용액이라는 작년 정올 1번문제를 풀어보았습니다. 다들 알고리즘 복잡도는 무시하고 Time Limit Exceeded라도 띄워보자고 짜는데, 이상하게 Wrong Answer.. 값이 int범위에서 해결되지 않아 줄줄 새고 있었습니다-- 범위를 제대로 생각해봐야겠다는 것을 염두함과 동시에 복잡도에 관해서도 좀 더 생각해봐야겠네요.
  • AcceleratedC++/Chapter10 . . . . 6 matches
         = Chapter 10 Managing memory and low-level data structures =
         지금까지는 vector, string등 STL이 기본적으로 제공하는 자료구조를 통해서 프로그래밍을 하였다.
         == 10.1 Pointers and arrays ==
         포인터(pointer) 임의 접근 반복자로서, 배열의 요소들을 접근하기 위해서는 필수, 다른 용도로도 많이 이용된다.
          || 포인터(pointer) || 주소를 나타내는 값 ||
          보통 프로그래머가 포인터를 초기화시키는 값으로 이용하는 값은 0이다. 흔이 이를 '''널 포인터(null pointer)'''라고 부른다.
          {{{~cpp int *p; // *p는 int 타입을 갖는다.
         int* p; // p는 int*라는 것을 강조하는 표현이다. C컴파일러는 * 주변의 공백을 무시하기 때문에 상기의 2개 표현은 완전히 동일하다.
          {{{~cpp int* p, q; // p는 int* 인 포인터 형식, q는 int 형을 가리킨다.
         //pointer_example.cpp
         #include <iostream>
         using std::cout;
         using std::endl;
         int main()
          int x = 5;
          // `p' points to `x'
          int* p = &x;
          // change the value of `x' through `p'
         int (*fp)(int);
         int next(int n)
  • AcceleratedC++/Chapter12 . . . . 6 matches
         = Chapter 12 Making class objects act like values =
         12장에서는 string 클래스의 클론 버전인 Str 클래스를 제작한다. Str 클래스는 string 클래스의 형변환과 연산자의 구현에 초점을 맞추어서 제작한다.
         == 12.1 A simple string class ==
          std::copy(cp, cp+std::strlen(cp), std::back_inserter(data));
          template<class In> Str(In b, In e) {
          std::copy(b, e, std::back_inserter(data));
         상기의 클래스에는 Str(const char*) 타입의 생성자가 존재하기 때문에 이 생성자가 Str 임시 객체를 생성해서 마치 '''사용자 정의 변환(user-define conversion)'''처럼 동작한다.
         '''string 에서 가능했던 연산들'''
         cin>>s;
          Vec<int> data;
         이 구현의 세부적인 작동방식은 모두 Vec 클래스로 위임하였다. 대신에 const 클래스와 const 가 아닌 클래스에 대한 버전을 제공하였고, 표준 string 함수와의 일관성 유지를 위해서 string 대신에 char& 형을 리턴하도록 하였음.
         cin>>s;
         cin.operator>>(s); // istream 을 우리가 만든 객체가 아니기 때문에 재정의할 수 없다.
         s.operator>>(cin); // 표준 istream 의 형태가 아니다.
         s>>cin
          // input operator implemented in 12.3.2/216
          std::copy(s.data.begin(), s.data.end(),
          std::back_inserter(data));
          std::copy(cp, cp + std::strlen(cp), std::back_inserter(data));
          template <class In> Str(In i, In j) {
  • BasicJava2005/5주차 . . . . 6 matches
          - max(), min() : 최대/최소값을 구한다.
          - 각종 Wrapper클래스(Integer, Double, Character...)
          - parseXXX : String을 각 형태로 변환한다.
          - toString : 지정한 숫자를 문자열 형태로 반환한다.
          public static void main(String[] args) {
          int a = Integer.parseInt(args[0]);
          int b = Integer.parseInt(args[1]);
          System.out.println(a + " / " + b + " = " + (a / b));
          } catch(ArrayIndexOutOfBoundsException e) {
          System.out.println("숫자를 2개 넣으세요");
          System.out.println("0으로 나누지 마세요");
          System.out.println("문자열을 넣지 마세요");
         5. try~catch~finally
          - try ~ catch 구문을 실행후 무조건 finally문장을 실행한다.
  • BookShelf/Past . . . . 6 matches
          1. ExtremeProgrammingExplained 2e - 20052021
          1. 리스크관리(WaltzingWithBear) - 200450407
          1. ExtremeProgrammingInstalled - 20050508
          1. [BuildingParsersWithJava] - 20050916
          1. [Downshifting] - 20051008
          1. [TheElementsOfProgrammingStyle] - 20051018
          1. [MindMapBook] - 20060123
          1. [TheElementsOfStyle] - 20060304
          1. [IntroductionToTheTheoryOfComputation]
  • COM/IUnknown . . . . 6 matches
         = IUnknown Interface =
         virtual HRESULT QueryInterface(REFIID riid, void** ppvObject) = 0;
         HRESULT (*QueryInterface) (IUnknown *This, REFIID *This, REFIID riid, void** ppvObject);
         == QueryInterface ==
         C++ 스마트 포인터에서는 참조 카운팅을 이용해서 dangling pointer 문제를 해결한다. boost 의 shared_ptr이 이를 구현한다.
         인터페이스 포인터는 '''QueryInterface(IID_IUnknown, (void**) &pIUnknownInterface)''' 를 통해서 얻을 수 있으며, 이의 유효를 검사하는 것이 가능하다.
  • ContestScoreBoard/차영권 . . . . 6 matches
         #include <iostream>
         using namespace std;
         #define nTeam 101 // 팀 수
         #define nProblem 9 // 문제 번호
          int solvedProblem; // 푼 문제의 수
          int timePenalty; // 시간 패널티
          bool incorrectSubmit[nProblem];
         void init(Team *team);
         void InputInformation(Team *team, bool *joined);
         void RankTeam(Team *team, bool *joined);
         int main()
          bool joined[nTeam] = {false, };
          int nCase;
          int count = 0;
          cin >> nCase;
          cin.get();
          cin.get();
          init(team);
          InputInformation(team, joined);
          RankTeam(team, joined);
  • ExtremeProgramming . . . . 6 matches
         ExtremeProgramming 은 경량개발방법론으로서, RUP 등의 방법론에 비해 그 프로세스가 간단하다. XP 에서의 몇몇 개념들은 일반적인 프로그래밍에서도 유용하게 쓰일 수 있다. 특히 TestDrivenDevelopment(TestFirstProgramming) 의 개념과 Refactoring, UnitTest는 초기 공부할때 혼자서도 실습을 해볼 수 있는 내용이다. 개인 또는 소그룹의 훈련으로도 이용할 수 있을 것이다.
         http://extremeprogramming.org/map/images/project.gif
         초기 Customer 요구분석시에는 UserStory를 작성한다. UserStory는 추후 Test Scenario를 생각하여 AcceptanceTest 부분을 작성하는데 이용한다. UserStory는 개발자들에 의해서 해당 기간 (Story-Point)을 예측(estimate) 하게 되는데, estimate가 명확하지 않을 경우에는 명확하지 않은 부분에 대해서 SpikeSolution 을 해본뒤 estimate을 하게 된다. UserStory는 다시 Wiki:EngineeringTask 로 나누어지고, Wiki:EngineeringTask 부분에 대한 estimate를 거친뒤 Task-Point를 할당한다. 해당 Point 의 기준은 deadline 의 기준이 아닌, programminer's ideal day (즉, 아무런 방해를 받지 않는 상태에서 프로그래머가 최적의 효율을 진행한다고 했을 경우의 기준) 으로 계산한다.
         그 다음, 최종적으로 Customer 에게 해당 UserStory 의 우선순위를 매기게 함으로서 구현할 UserStory의 순서를 정하게 한다. 그러면 UserStory에 대한 해당 Wiki:EnginneringTask 를 분담하여 개발자들은 작업을 하게 된다. 해당 Task-Point는 Iteration 마다 다시 계산을 하여 다음 Iteration 의 estimate 에 적용된다. (해당 개발자가 해당 기간내에 처리 할 수 있는 Task-Point 와 Story-Point 에 대한 estimate) (Load Factor = 실제 수행한 날 / developer's estimated 'ideal' day. 2.5 ~ 3 이 평균) Iteration 중 매번 estimate 하며 작업속도를 체크한뒤, Customer 와 해당 UserStory 에 대한 협상을 하게 된다. 다음 Iteration 에서는 이전 Iteration 에서 수행한 Task Point 만큼의 일을 할당한다.
         Iteration 중에는 매일 StandUpMeeting 을 통해 해당 프로그램의 전반적인 디자인과 Pair, Task 수행정도에 대한 회의를 하게 된다. 디자인에는 CRCCard 과 UML 등을 이용한다. 초기 디자인에서는 세부적인 부분까지 디자인하지 않는다. XP에서의 디자인은 유연한 부분이며, 초반의 과도한 Upfront Design 을 지양한다. 디자인은 해당 프로그래밍 과정에서 그 결론을 짓는다. XP의 Design 은 CRCCard, TestFirstProgramming 과 ["Refactoring"], 그리고 StandUpMeeting 나 PairProgramming 중 개발자들간의 대화를 통해 지속적으로 유도되어지며 디자인되어진다.
         개발시에는 PairProgramming 을 한다. 프로그래밍은 TestFirstProgramming(TestDrivenDevelopment) 으로서, UnitTest Code를 먼저 작성한 뒤 메인 코드를 작성하는 방식을 취한다. UnitTest Code -> Coding -> ["Refactoring"] 을 반복적으로 한다. 이때 Customer 는 스스로 또는 개발자와 같이 AcceptanceTest 를 작성한다. UnitTest 와 AcceptanceTest 로서 해당 모듈의 테스트를 하며, 해당 Task를 완료되고, UnitTest들을 모두 통과하면 Integration (ContinuousIntegration) 을, AcceptanceTest 를 통과하면 Release를 하게 된다. ["Refactoring"] 과 UnitTest, CodingStandard 는 CollectiveOwnership 을 가능하게 한다.
         그리하여 각 Wiki:EngineeringTask 들이 구현되고, 궁극적으로 UserStory 의 Story들이 모두 진행되면 Mission Complete. (아.. 어제 Avalon 의 영향인가. --;)
          * ThePlanningGame: 개발자는 UserStory들에 대해서 구현, 예측, 지시들에 대해 토론한다.
          * TestDrivenDevelopment : Programming By Intention. 프로그래머의 의도를 표현하는 테스트코드를 먼저 작성한다. 그렇게 함으로서 단순한 디자인이 유도되어진다. (with ["Refactoring"])
          * ["Refactoring"] : 코드를 향상시키기 위한 프로세스
          * PairProgramming: 프로그램코드는 두명 (driver, partner)이 하나의 컴퓨터에서 작성한다.
          * CodingStandard: CollectiveOwnership 을 위한. 누구나 이해하기 쉽도록 코딩스타일 표준의 설정.
          * ContinuousIntegration: 매일 또는 수시로 전체 시스템에 대한 building 과 testing을 수행한다.
          * ["Metaphor"] : Object Naming 과 프로그램의 해당 수행에 대한 커뮤니케이션의 가이드 역할을 해줄 개념의 정의.
          * http://extremeprogramming.org - 처음에 읽어볼만한 전체도.
          * [http://www.trireme.com/whitepapers/process/xp-uml/xp-uml-short_files/frame.htm eXtremeProgrammingMeetsUML] - 아직 읽어보지 않았음.
          * http://objectmentor.com - Robert Martin 의 글들. OOP 관련 기사들도 많음.
          * http://xprogramming.com - Ron Jeffries 의 글들이 많다.
          * http://www.martinfowler.com/articles/newMethodology.html#N1BE - 또다른 '방법론' 이라 불리는 것들. 주로 agile 관련 이야기들.
          * http://www.xprogramming.com/xpmag/kings_dinner.htm - 원문
  • FundamentalDesignPattern . . . . 6 matches
         DesignPatterns 의 패턴들에 비해 구현이 간단하면서도 필수적인 패턴. 전체적으로 가장 기본이 되는 소형 패턴들. 다른 패턴들과 같이 이용된다. ["Refactoring"] 을 하면서 어느정도 유도되는 것들도 있겠다. (Delegation의 경우는 사람들이 정식명칭을 모르더라도 이미 쓰고 있을 것이다. Java 에서의 InterfacePattern 도 마찬가지.)
         기본적인 것으로는 Delegation, DoubleDispatch 가 있으며 (SmalltalkBestPracticePattern에서 언급되었던 것 같은데.. 추후 조사), 'Patterns In Java' 라는 책에서는 Delegation 과 Interface, Immutable, MarkerInterface, Proxy 를 든다. (Proxy 는 DesignPatterns 에 있기도 하다.)
          * InterfacePattern
          * MarkerInterface
         근데, 지금 보면 저건 Patterns in Java 의 관점인 것 같고.. 그렇게 '필수적 패턴' 이란 느낌이 안든다. (Proxy 패턴이 과연 필수개념일까. RPC 구현 원리를 이해한다던지 등등이라면 몰라도.) Patterns in Java 에 있는건 빼버리는 것이 좋을 것 같다는 생각. (DoubleDispatch 는 잘 안이용해서 모르겠고 언어 독립적으로 생각해볼때는 일단은 Delegation 정도만?) --["1002"]
  • Gof/Command . . . . 6 matches
         == Intent ==
         때때로 요청받은 명령이나 request를 받는 객체에 대한 정보없이 객체들에게 request를 넘겨줄 때가 있다. 예를 들어 user interface tookit은 button이나 menu처럼 사용자 입력에 대해 응답하기 위해 요청을 처리하는 객체들을 포함한다. 하지만, 오직 toolkit을 사용하는 어플리케이션만이 어떤 객체가 어떤일을 해야 할지 알고 있으므로, toolkit은 button이나 menu에 대해서 요청에 대해 명시적으로 구현을 할 수 없다. toolkit 디자이너로서 우리는 request를 받는 개체나 request를 처리할 operations에 대해 알지 못한다.
         Command Pattern은 request 를 객체화함으로서 toolkit 객체로 하여금 불특정한 어플리케이션 객체에 대한 request를 만들게 한다. 이 객체는 다른 객체처럼 저장될 수 있으며 pass around 가능하다. 이 pattern의 key는 수행할 명령어에 대한 인터페이스를 선언하는 추상 Command class에 있다. 이 인터페이스의 가장 단순한 형태에서는 추상적인 Execute operation을 포함한다. 구체화된 Command subclass들은 request에 대한 receiver를 instance 변수로 저장하고 request를 invoke하기 위한 Execute operation을 구현함으로서 receiver-action 짝을 구체화시킨다. The receiver has the knowledge required to carry out the request.
         어플리케이션은 각각의 구체적인 Command 의 subclass들로 각가각MenuItem 객체를 설정한다. 사용자가 MenuItem을 선택했을때 MenuItem은 메뉴아이템의 해당 명령으로서 Execute oeration을 호출하고, Execute는 실제의 명령을 수행한다. MenuItem객체들은 자신들이 사용할 Command의 subclass에 대한 정보를 가지고 있지 않다. Command subclass는 해당 request에 대한 receiver를 저장하고, receiver의 하나나 그 이상의 명령어들을 invoke한다.
         예를 들어 PasteCommand는 clipboard에 있는 text를 Document에 붙이는 기능을 지원한다. PasteCommand 의 receiver는 인스턴스화할때 설정되어있는 Docuemnt객체이다. Execute 명령은 해당 명령의 receiver인 Document의 Paste operation 을 invoke 한다.
         이러한 예들에서, 어떻게 Command pattern이 해당 명령을 invoke하는 객체와 명령을 수행하는 정보를 가진 객체를 분리하는지 주목하라. 이러함은 유저인터페이스를 디자인함에 있어서 많은 유연성을 제공한다. 어플리케이션은 단지 menu와 push button이 같은 구체적인 Command subclass의 인스턴스를 공유함으로서 menu 와 push button 인터페이스 제공할 수 있다. 우리는 동적으로 command를 바꿀 수 있으며, 이러함은 context-sensitive menu 를 구현하는데 유용하다. 또한 우리는 명령어들을 커다란 명령어에 하나로 조합함으로서 command scripting을 지원할 수 있다. 이러한 모든 것은 request를 issue하는 객체가 오직 어떻게 issue화 하는지만 알고 있으면 되기때문에 가능하다. request를 나타내는 객체는 어떻게 request가 수행되어야 할지 알 필요가 없다.
          * logging change를 지원하기 원할때. logging change 를 지원함으로서 시스템 충돌이 난 경우에 대해 해당 command를 재시도 할 수 있다. Command 객체에 load 와 store operation을 추가함으로서 change의 log를 유지할 수 있다. crash로부터 복구하는 것은 디스크로부터 logged command를 읽어들이고 Execute operation을 재실행하는 것은 중요한 부분이다.
          * 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
          * Invoker (MenuItem)
          * Invoker 객체는 ConcreteCommand객체를 저장한다.
          * invoker는 command에서 Execute를 호출함으로서 request를 issue한다. 명령어가 undo가능할때, ConcreteCommand는 명령어를 undo하기 위한 state를 저장한다.
          * ConcreteCommand 객체는 request를 처리하기 위해 receiver에서 operation을 invoke한다.
         다음의 다이어그램은 이 객체들이 어떻게 상호작용하는지 보여준다. 이 다이어그램은 또한 어떻게 Command 가 receiver와 처리할 request로부터 invoker를 분리하는지 설명한다.
          1. Command는 해당 객체의 명령을 invoke하는 객체와 어떻게 수행해야 할지 알고 있는 객체와의 결합을 해제한다.
         constructor는 receiver와 instance 변수에 대응되는 action을 저장한다. Execute는 단순히 action을 receiver에 적용한다.
         MyClass의 instance로 있는 Action을 호출할 command를 만들기 위해서, 클라이언트는 단순히 이렇게 코딩한다.
         아마도 CommandPattern에 대한 첫번째 예제는 Lieberman 의 논문([Lie85])에서 나타났을 것이다. MacApp [App89] 는 undo가능한 명령의 구현을 위한 command의 표기를 대중화시켰다. ET++[WGM88], InterViews [LCI+92], Unidraw[VL90] 역시 CommandPatter에 따라 클래스들을 정의했다. InterViews는 각 기능별 명령에 대한 Action 추상 클래스를 정의했다. 그리고 action 메소드에 의해 인자화됨으로서 자동적으로 command subclass들을 인스턴스화 시키는 ActionCallback 템플릿도 정의하였다.
         THINK 클래스 라이브러리 [Sym93b] 또한 undo 가능한 명령을 지원하기 위해 CommandPattern을 사용한다. THINK 에서의 Command들은 "Tasks" 로 불린다. Task 객체들은 ChainOfResponsibilityPattern에 입각하여 넘겨지고 소비되어진다.
  • Hessian . . . . 6 matches
         Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
         hessian simple tutorial (홈페이지의 Servlet 예제) - 이는 Resin Servlet Container 가 동작해야 함.
         === interface 의 정의 ===
         RPC 를 위해서는 서버-클라이언트의 대화를 위한 interface 의 정의가 필요하다. 간단하게 정의해본다.
         public interface Basic {
          public String hello();
          public int returnInt();
         이를 컴파일 하기 위해서는 hessian-2.1.3.jar 화일과 jsdk23.jar, resin.jar 화일이 classpath 에 맞춰줘야 한다. (이는 resin 의 lib 폴더에 있다. hessian jar 화일은 [http://caucho.com/hessian/download/hessian-2.1.3.jar hessian] 를 다운받는다)
          public String hello () {
          public int returnInt() {
         Java 와 Python 둘 다 구현이 가능하다. 여기서는 간단하게 Python Interpreter 를 이용해보자.
         >>> proxy.returnInt()
         Java 의 경우는 다음과 같다. 위에서 정의한 interface 인 Basic 이 있어야 한다.
          public static void main(String[] args) throws MalformedURLException {
          String url = "http://localhost:8080/servlet/RpcTest";
          System.out.println("Hello ():" + basic.hello());
          System.out.println("returnInt : " + basic.returnInt());
  • HowToStudyDesignPatterns . . . . 6 matches
          결국 제 후배가 한달 정도만에 그렇게 껍질을 깨고 나오는 발전을 할 수 있었던 것은 그 자신이 늘 "반성적인 학습"을 해오며 자기 영어 공부에 대한 문제의식을 형성했고 궁리해 왔기 때문입니다. 물론 절대적인 영어 공부량(input)이 이미 어느 정도 되어 있었기 때문이기도 합니다. 물길을 열어줄 "열쇠"가 필요했었던거죠. 이미 물은 어느 정도 차 있었고요.
          ''We were not bold enough to say in print that you should avoid putting in patterns until you had enough experience to know you needed them, but we all believed that. I have always thought that patterns should appear later in the life of a program, not in your early versions.''
          ''The other thing I want to underscore here is how to go about reading Design Patterns, a.k.a. the "GoF" book. Many people feel that to fully grasp its content, they need to read it sequentially. But GoF is really a reference book, not a novel. Imagine trying to learn German by reading a Deutsch-English dictionary cover-to-cover;it just won't work! If you want to master German, you have to immerse yourself in German culture. You have to live German. The same is true of design patterns: you must immerse yourself in software development before you can master them. You have to live the patterns.
          Read Design Patterns like a novel if you must, but few people will become fluent that way. Put the patterns to work in the heat of a software development project. Draw on their insights as you encounter real design problems. That’s the most efficient way to make the GoF patterns your own.''
         이런 식의 "사례 중심"의 공부를 위해서는 스터디 그룹을 조직하는 것이 좋습니다. 혼자 공부를 하건, 그룹으로 하건 조슈아 커리프스키의 유명한 A Learning Guide To Design Patterns (http://www.industriallogic.com/papers/learning.html'''''')을 꼭 참고하세요. 그리고 스터디 그룹을 효과적으로 꾸려 나가는 데에는 스터디 그룹의 패턴 언어를 서술한 Knowledge Hydrant (http://www.industriallogic.com/papers/khdraft.pdf'''''') 를 참고하면 많은 도움이 될 겁니다 -- 이 문서는 뭐든지 간에 그룹 스터디를 한다면 적용할 수 있습니다.
         sorry라는 단어를 모르면서 remorseful이라는 단어를 공부하는 학생을 연상해 보세요. 제 강의에서도 강조를 했지만, 외국어 공부에서는 자기 몸에 가까운 쉬운 단어부터 공략을 하는 것이 필수적입니다 -- 이런 걸 Proximal learning이라고도 하죠. 등급별 어휘 목록 같은 게 있으면 좋죠. LG2DP에서 제안하는 순서가 그런 것 중 하나입니다.
          ''...but I always teach Composite Pattern, Strategy Pattern, Template Method Pattern, and Factory Method Pattern before I teach Singleton Pattern. They are much more common, and most people are probably already using the last two. ... ''
         우리가 갖고 있는 지식이라는 것은 한가지 표현양상(representation)으로만 이뤄져 있지 않습니다. "사과"라는 대상을 음식으로도, 그림의 대상으로도 이해할 수 있어야 합니다. 실제 패턴이 적용된 "다양한 경우"를 접하도록 하라는 것이 이런 겁니다. 동일 대상에 대한 다양한 접근을 시도하라는 것이죠. 자바로 구현된 코드도 보고, C++로 된 것도 보고, 스몰토크로 된 것도 봐야 합니다. 설령 "오로지 자바족"(전 이런 사람들을 Javarian이라고 부릅니다. Java와 barbarian을 합성해서 만든 조어지요. 이런 "하나만 열나리 공부하는 것"의 병폐에 대해서는 존 블리스사이즈가 C++ Report에 쓴 Diversify라는 기사를 읽어보세요 http://www.research.ibm.com/people/v/vlis/pubs/gurus-99.pdf) 이라고 할지라도요. 그래야 비로소 자바로도 "상황에 맞는" 제대로 된 패턴을 구현할 수 있습니다. 패턴은 그 구현(implementation)보다 의도(intent)가 더 중요하다는 사실을 꼭 잊지 말고, 설명을 위한 방편으로 채용된 한가지 도식에 자신의 사고를 구속하는
          1. Design Patterns Explained by Shalloway, and Trott : 최근 DP 개론서로 급부상하고 있는 명저
          1. ["Refactoring"] by Martin Fowler : DP 공부 이전에 봐서 문제의식 형성하기 (망치를 들면 모든 것이 못으로 보이는 오류 탈피)
          1. Pattern Hatching by John Vlissides : DP 심화학습
          1. Concurrent Programming in Java by Doug Lea
          1. Analysis Patterns by Martin Fowler : 비지니스 분석 패턴 목록
          1. A Timeless Way of Building by Christopher Alexander : 프로그래머들이 가장 많이 본 건축서적. 패턴의 아버지
          * LearningGuideToDesignPatterns - 각각의 패턴 학습순서 관련 Article.
          * 패턴이 어떻게 생성되었는지 그 과정을 보여주지 못한다. 즉, 스스로 패턴을 만들어내는 데에 전혀 도움이 안된다. (NoSmok:LearnHowTheyBecameMasters)
         알렉산더가 The Timeless Way of Building의 마지막에서 무슨 말을 하는가요?
         ||''At this final stage, the patterns are no longer important ... [[BR]][[BR]]The patterns have taught you to be receptive to what is real.''||
         see also HowToStudyRefactoring, HowToStudyXp
  • IsThisIntegration? . . . . 6 matches
         [http://online-judge.uva.es/p/v102/10209.html 원문보기]
         === IsThisIntegration? ===
         [http://online-judge.uva.es/p/v102/p10209.jpg]
         === Input ===
         === Sample Input ===
         || 하기웅 || C++ || 2시간 || [IsThisIntegration?/하기웅] ||
         || 허준수 || C++ || ? || [IsThisIntegration?/허준수] ||
         || 김상섭 || C++ || ㅡㅜ || [IsThisIntegration?/김상섭] ||
  • Java Study2003/첫번째과제/장창재 . . . . 6 matches
          - 자바(Java)를 이야기할 때 크게 두 가지로 나누어 이야기 할 수 있습니다. 먼저, 기계어, 어셈블리어(Assembly), 포트란(FORTRAN), 코볼(COBOL), 파스칼(PASCAL), 또는 C 등과 같이 프로그래밍을 하기 위해 사용하는 자바 언어가 있고, 다른 하나는 자바 언어를 이용하여 프로그래밍 하기 위해 사용할 수 있는 자바 API(Application Programming Interface)와 자바 프로그램을 실행시켜 주기 위한 자바 가상머신(Java Virtual Machine) 등을 가리키는 자바 플랫폼(Platform)이 있습니다. 다시 말해서, 자바 언어는 Visual C++와 비유될 수 있고, 자바 플랫폼은 윈도우 95/98/NT 및 윈도우 95/98/NT API와 비유될 수 있습니다.
          자바 언어(Java Language)를 이용하여 작성한 자바 프로그램(Java Program)은 자바 컴파일러(Java Compiler)를 이용하여 자바 바이트코드(Java Byte code)로 컴파일 되고, 이 자바 바이트코드는 자바 가상머신에 의해 해석되어 실행되는데, 이때 자바 가상머신은 자바 바이트코드에 대한 해석기 즉 인터프리터(interpreter)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
         자바 언어로 작성된 자바 프로그램을 중간 언어(intermediate language) 형태인 자바 바이트코드로 컴파일 합니다<.
         자바 인터프리터(Java Interpreter) 또는 자바 가상머신(Java Virtual Machine):
         자바 가상머신(Java Virtual Machine; Java VM):
         자바 가상머신은 자바 플랫폼의기반을 이루며, 다양한 하드웨어기반 플랫폼에 포팅(poring) 됩니다. 다시 말해서, 자바 가상머신은 윈도우 95/98/NT, 유닉스, 또는 매킨토시 등과 같은 기존의 운영체제 또는 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등, 여러 가지 플랫폼에 설치되어 사용될 수 있으며, 사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 됩니다.
         자바 API(Java Application Programming Interface):
         자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
         자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
         자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
         인터프리터(Interpreter) 방식이다:
         자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
         JIT(Just-In-Time):
         캐싱(Caching):
         이러한 문제는 자바가 스레드 스케줄링 정책 구현에 의존하고, synchronized 명령어가 모니터 기반의 동기화 기법만 제공하고 큐 대기 시간을 예측할 수 없으며, notify() 메소드가 스레드를 깨우는 순서가 불명확하고, 우선순위 역전(priority inversion_의 가능성이 있습니다. 이러한 문제는 API 수준에서 해결되어야 하고, 실시간 타스크 처리를 위한 우선순위 레벨을 확장하고, 우선순위 상속(priority inheritance) 또는 우선순위 최고 한도 제한(priority ceiling) 등과 같은 우선순위 역전 방지 (priority inversion avoidance) 프로토콜을 사용하고, MuteX, 이진 세마포어(Binary Semaphore), 계수 세마포어(Counting Semaphore) 등을 사용할 수 있습니다.
         이러한 문제점은 느린(Lazy) 클래스 로딩에서 발생하거나 메모리 할당과 가비지 콜렉션이 비결정적이고 느린 최악의 경우(worst-case) 특성을 가지며 stop-start 방식으로 모든 스레드를 멈출 수 있다는 문제점이 있습니다. 이를 해결하기 위해 클래스를 미리 로딩(class preloading)한다거나 정적 초기화(static initializer)를 제거하여 패키지 라이브러리에 대해서는 가상머신 초기화를 사용하고 응용프로그램에서는 명시적인 초기화 를 사용하게 하는 등의 기법을 사용할 수 있습니다. 그리고, 메모리 할당과 쓰레기 수집(garbage collection)에 대해서는 정해진 시간 내에 입터럽트 가능한 쓰레기 수집을 하는 것입니다. 또는 표준화된 실시간 API를 제공함으로써 해결할 수 있습니다.
         C언어를 이용하여 C 프로그램을 작성한다면 반드시 main이라는 시작 함수를 정의해 주어야 하고, 윈도우 응용프로그램을 작성한다고 하면 WinMain이라는 함수를 꼭 작성해 주어야 하지요. 이러한 것을 규약(protocol)이라 합니다. 마찬가지로, 자바 언어를 이용하여 여러 가지 종류의 자바 프로그램을 작성할 수 있는데, 이 때 각 자바 프로그램의 종류에 따라 해당 규약이 서로 다릅니다. 이렇듯 자바를 이용하여 자바 프로그램을 작성한다는 것은 각 자바 프로그램에서 제시하고 있는 규약을 지켜 프로그램을 작성한다는 것입니다. 자바 언어를 이용하여 작성할 수 있는 자바 프로그램의 종류를 살펴보면 다음과 같습니다.
         public static void main(String args[]) {
         System.out.println("Hello World!"); // Display the string
  • Java/ReflectionForInnerClass . . . . 6 matches
         [http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&oe=UTF-8&newwindow=1&threadm=3A1C1C6E.37E63FFD%40cwcom.net&rnum=4&prev=/groups%3Fq%3Djava%2Breflection%2Binnerclass%26hl%3Dko%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26newwindow%3D1%26selm%3D3A1C1C6E.37E63FFD%2540cwcom.net%26rnum%3D4 구글에서 찾은 답변]
         innerclass 에서는 기본적으로 Inner Class 를 포함하고 있는 상위클래스의 레퍼런스가 생성자로 들어간다. 마치 C++ 에서 메소드들에 대해 this 가 기본 파라메터로 넘어가는 것과 같은 이치랄까.
         public class InnerConstructorTest {
          public static void main(String[] args) {
          Object outer = outerClass.newInstance();
          Class innerClass = Class.forName("Outer$Inner");
          Constructor innerCons =
          innerClass.getDeclaredConstructor(consParamClasses);
          Object inner = innerCons.newInstance(consParams);
          System.out.println(inner.toString());
          System.out.println("Exception: " + e.getMessage());
          int y = 3;
          class Inner {
          public String toString() {
  • JavaStudy2002/입출력관련문제 . . . . 6 matches
         * 자바에는 C의 cin처럼 간단한 명령어가 없단 말인가!? --[영동]
          * 여러분이 어려워하시는것 같아, 입력 부분을 만들었습니다. 해당 static method의 기능은 한줄을 읽고, 공백이나, 탭을 기준으로 배열을 반환합니다. 사용 방법은 해당 함수의 main 을 참고하시고, 다른 소스에서 import해서 그냥 사용하세요. --["neocoin"]
         public class StandardInput {
          public static String[] getSplitedStringArray(String input, String delim) {
          StringTokenizer tokenizer = new StringTokenizer(input,delim);
          String[] output = (String[])arrayList.toArray(new String[0]);
          static String[] getInputLineData(){
          BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
          String input = "";
          input = bufferReader.readLine();
          e.printStackTrace();
          return getSplitedStringArray(input, " \n\t");
          public static void main(String[] args){
          System.out.println("글자 한줄 입력 받기 예제");
          String[] input = StandardInput.getInputLineData();
          for ( int i=0;i<input.length;i++)System.out.println(input[i]);
          System.out.println("\n글자나누기 예제\n");
          String inputData = "123 4 62 45";
          input = StandardInput.getSplitedStringArray(inputData, " ");
          for ( int i=0;i<input.length;i++)System.out.println(input[i]);
  • JavaStudy2003/세번째과제/곽세환 . . . . 6 matches
         import javax.swing.JOptionPane;
          private String name;
          public void setName(String n)
          public static void main(String[] args) {
         == Point.java ==
         public class Point {
          private int x, y;
          public Point() {
          public void setX(int xValue) { x = xValue; }
          public void setY(int yValue) { y = yValue; }
          public int getX() { return(x); }
          public int getY() { return(y); }
          public void move(int xValue, int yValue) {
         import javax.swing.*;
          private Point middlePoint = new Point();
          private int width;
          private int height;
          private String info = "";
          public void setData(int xValue, int yValue, int width, int height) {
          middlePoint.setX(xValue);
  • LazyInitialization . . . . 6 matches
         == Lazy Initialization ==
         ExplicitInitialization의 모든 장점은 단점으로, 단점은 장점으로 된다. 당연하다.(--;)
         LazyInitialization의 하나의 변수당 두개의 메소드로 나눠서 초기화를 한다. 하나는 변수가 LazyInitialization되는 것을 감추어 주는 getter이고, 다른 하나는 변수에다 디폴트값으로 할당을 해줄 DefaultValueMethod이다. 이 방법은 유연성이 증대된다. 당신이 서브클래스를 만든다면, DefaultValueMethod를 오버라이딩함으로써, 기능을 바꿀 수 있다. 전장에서도 언급했듯이 성능도 증대시킬 수 있다.
          int getCount()
          int defaultCount()
          int getPeriod()
          int defaultPeriod()
         별로 안쓸듯하지만... 켄트벡 왈 : 일단은 ExplicitInitialzation으로 출발을 하고, 상속될 거 같으면 LazyInitialization을 사용한다.
  • LearningGuideToDesignPatterns . . . . 6 matches
         원문 : http://www.industriallogic.com/papers/learning.html
         Pattern들은 각각 독립적으로 쓰이는 경우는 흔치 않다. 예를 들면, IteratorPattern은 종종 CompositePattern 과 같이 쓰이고, ObserverPattern과 MediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인다. Pattern들로 디자인과 프로그래밍을 시작하려고 할때에, 패턴을 사용하는데 있어서 실제적인 기술은 어떻게 각 패턴들을 조합해야 할 것인가에 대해 아는 것임을 발견하게 될 것이다.
         "skin" vs "guts" 에 대한 토론은 StrategyPattern 와 DecoratorPattern 를 구별하는 좋은 예가 될 것이다.
         CompositePattern은 여러부분에서 나타나며, IteratorPattern, ChainOfResponsibilityPattern, InterpreterPattern, VisitorPattern 에서 종종 쓰인다.
         === Singleton - Creational ===
         SingletonPattern은 종종 AbstractFactoryPattern 을 만드는데 이용된다. (Related Patterns 참조)
         === Chain of Responsibility - Behavioral ===
         ObserverPattern 과 MediatorPattern 들을 이용한 message의 전달관계를 관찰하면서, ChainOfResponsibilityPattern 의 message handling 과 비교 & 대조할 수 있다.
         가장 복잡한 Pattern중 하나이다. 이 Pattern의 이용 예제는 다음 패턴인 InterpreterPattern 에서 서술된다.
         === Interpreter - Behavioral ===
         InterpreterPattern 은 복잡하다. 이 Pattern은 FlyweightPattern 와 VisitorPattern 과 관계있으며, 이해를 돕는다.
         가장 마지막으로 읽을 Pattern 은 FacadePattern 이다. 이 Pattern은 InterpreterPattern 의 예제코드와 그 주제가 비슷하므로, InterpreterPattern 다음에 이어지는 것이 적절하다.
  • LinkedList/학생관리프로그램 . . . . 6 matches
          (검색-binary search??, sequential search...)
         #include <stdio.h>
         #define HEAD 0
         #define TAIL 1
         #define ORIGINALSEARCH 0
         #define DELETIONSEARCH 1
          int number;
         int Menu(int aPopulation);//메뉴선택
         int Process(int aMenu, int aPopulation, Student* aListPointer[]);
         int AddStudent(int aPopulation, Student* aListPointer[]);//새로운 학생 추가
         int DelStudent(int aPopulation, Student* aListPointer[]);//찾아서 지우기
         void InputStudentInfo(Student* aStudent);//정보 입력
         Student* Searching(int aNumber, Student* aHead, int aType);//찾기
         int main()
          Student* listPointer[2];//리스트의 머리와 꼬리
          int population = 0;//등록된 학생수
          population = Process(Menu(population), population, listPointer);
          printf("\n");//보기 좋게 한 칸 띈다.
          FreeMemory(listPointer[HEAD]);//메모리 해제
         int Menu(int aPopulation){
  • MFC/Socket . . . . 6 matches
          int id;
          void Init(CWnd *pWnd, int nPortNum);
          virtual void OnAccept(int nErrorCode);
          // NOTE - the ClassWizard will add and remove member functions here.
         void CServerSocket::Init(CWnd *pWnd, int nPortNum)
          m_serverSocket.Init(this,SERVERPORT); //서버를 생성한다.
          // init socket
          m_dataSocket->Init(this); //초기화
          * m_dataSocket.Init(this);
          int err = GetLastError();
          m_dataSocket->Init(this);
          data.m_index = 0;
         서버에 MFC의 CSocket을 쓰는 것은 그리 바람직해보이지 않네요. 상대적으로 사용하기 좀 어렵겠지만 CAsyncSocket을 써보도록 하세요. (개인적으로는 이것도 별로 추천하지 않습니다. 하지만 MSN이나 네이트온처럼 대형 메신저를 만드는게 아니니까 CAsyncSocket으로도 충분해 보이네요.) 기회가 된다면 MFC Socket말고 Winsock으로 코딩해보세요. --[인수]
  • MagicSquare/재동 . . . . 6 matches
          def testInitializeBoard(self):
          def __init__(self):
          self.initializeBoard()
          for i in range(self.boardLength+1):
          for j in range(self.boardLength+1):
          def initializeBoard(self):
          for i in range(self.boardLength+1):
          for j in range(self.boardLength+1):
          def printBoard(self):
          for i in range(1,self.boardLength+1):
          for j in range(self.boardLength):
          print self.board[i][j],"\t",
          print
         if __name__ == "__main__":
          #unittest.main()
          input = int(raw_input('Input(odd number): '))
          if input % 2 == 1:
          magicSquare.setBoard(input)
          magicSquare.printBoard()
          print 'Input must be odd number'
  • MedusaCppStudy/재동 . . . . 6 matches
         #include <iostream>
         #include <vector>
         #include <ctime>
         #include <stdexcept>
         using namespace std;
         const int DIRECTION_ROW[8] = {-1, -1, 0, 1, 1, 1, 0, -1};
         const int DIRECTION_COL[8] = {0, 1, 1, 1, 0, -1, -1, -1};
          int curRow;
          int curCol;
          int count;
         void showBoard(const vector< vector<int> >& board);
         bool isAllBoard(const vector< vector<int> >& board);
         void moveRoach(vector< vector<int> >& board, sRoach& roach);
         void inputRoachPosition(sRoach& roach, const vector< vector<int> >& board);
         int main()
          int rows, cols;
          cin >> rows >> cols;
          vector< vector<int> > board(rows);
          for(int i = 0; i < rows; i++)
          inputRoachPosition(roach, board);
  • MicrosoftFoundationClasses . . . . 6 matches
         Microsoft Foundation Classes 를 줄여서 부른다. 기정의된 클래스의 집합으로 Visual C++이 이 클래스들을 가반으로 하고 있다. 이 클래스 군은 MS Windows API를 래핑(Wrapping)하여서 객체지향적 접근법으로 프로그래밍을 하도록 설계되어 있다. 예전에는 볼랜드에서 내놓은 OWL(Object Windows Library)라는 것도 쓰였던 걸로 아는데... -_-; 지금은 어디로 가버렸는지 모른다. ㅋㅋ
          ''백과사전) WikiPedia:Microsoft_Foundation_Classes, WikiPedia:Object_Windows_Library ''
         = Simple MFC Window =
         #include <afxwin.h> //about class library
         class CExApp : public CWinApp {
          virtual BOOL InitInstance();
         BOOL CExApp::InitInstance(void) {
          m_pMainWnd = new CExWnd; // 생성된 프레임을 윈도우에 붙인다.
          m_pMainWnd->ShowWindow(m_nCmdShow);
         //WinMain() 함수는 MFC 의 클래스 안에 구현이 되어있기 때문에 API로 윈도우를 만들때보다 간편하게 작성하는 것이 가능하다.
          Upload:simple_mfc_window_showing.JPG [[BR]]
          ''컴파일 해보고자 하는 분들은 Project/Setting/General 항목에서 MFC DLL을 사용한다는 설정을 해야한다.
          nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
          Upload:simple_mfc_painter.rar
         응용프로그램에서 document를 몇개를 다루느냐에 따라서 SDI(single document interface), MDI(multiple document interface)로 구분하여 사용한다.
         == Link ==
          하나의 document와 frame window는 한개의 document template에 의해서 생성되며 view는 frame window객체가 생성되면서 자동으로 생성되게 된다.
          {{{~cpp DocumentTemplateClass : CSingleDocTemplate, CMultiDocTemplate}}}
          * {{{~cpp 응용프로그램 객체 theApp 생성}}}
          * {{{~cpp MFC에 의해서 기 제공되는 WinMain() 실행}}}
  • MoinMoinDone . . . . 6 matches
         Things from MoinMoinTodo that got implemented.
          * Strip closing punctuation from URLs, so that e.g. (http://www.python.org) is recognized properly. Closing punctuation is characters like ":", ",", ".", ")", "?", "!". These are legal in URLs, but if they occur at the very end, you want to exclude them. The same if true for InterWiki links, like MeatBall:InterWiki.
          * Headlines:
          * Check for a (configurable) max size in bytes of the RecentChanges page while building it
          * Inline code sections (triple-brace open and close on the same line, {{{~cpp like this}}} or {{{~cpp ThisFunctionWhichIsNotaWikiName()}}})
          * SGML-Entities were replaced when saving them a second time, i.e. & #160; without the space had a problem.
          * SpamSpamSpam appeared 3 times in WordIndex. Too much Spam!
          * Added a means to add meta tags to the page header, like: {{{~cpp
         <META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
          * MoinMoin:J
  • MoinMoinNotBugs . . . . 6 matches
         == This is *NOT* a Browser bug with CSS rendering ==
         <b>window</b> <ul>
          The main, rectangular background, control and data area of an application. <p></ul>
          A temporary, pop-up window created by the application, where the user can
         enter information and provide commands. <p></ul>
         '''The HTML being produced is invalid:''' ''Error: start tag for "LI" omitted, but its declaration does not permit this.'' That is, UL on its lonesome isn't permitted: it must contain LI elements.
         Also worth noting that ''Error: Missing DOCTYPE declaration at start of document'' comes up at the HEAD tag; and ''Error: document type does not allow element "FONT" here'' for a FONT tag that's being used inside a PRE element.
         ''Indeed the <ul> should be a <dl> or so for pure indents. I'll add HTML conformity checking as a todo.''
         Please note also that to be "identical," the second P tag should ''follow'' the /UL, not precede it. The implication as-is is that the P belongs to the UL block, when it doesn't. It may be worth using closing paragraph tags, as an aide to future XHTML compatibility, and to make paragraph enclosures wholly explicit.
         This is not an Opera bug. The HTML is invalid. '''The blocks are overlapping, when they are not allowed to:''' P UL P /UL UL P /UL is not a sensible code sequence. (It should be P UL /UL P UL /UL P... giddyupgiddyup?)
         I suspect this problem is pervasive, and I also suspect that the solution is almost moot; probably a one-off counting problem, or a mis-ordered "case" sort of sequence. If the /UL closing tag were to precede the P opening tag, all would be well.
         Hey! That ToC thing happening at the top of this page is *really* cool!
         ''This issue will be resolved in the course of XML formatting -- after all, XML is much more strict than any browser.''
  • Monocycle/조현태 . . . . 6 matches
         #include <iostream>
         #include <Windows.h>
         #include <vector>
         #include <queue>
         #include <map>
         #include <algorithm>
         using namespace std;
         #define CAN_MOVE_POINT 0
         #define DONT_MOVE_POINT 2
         #define MOVED_POINT 1
         #define MAX_X_SIZE 25
         const int MOVE_PLUS_X[4] = {0, 1, 0, -1};
         const int MOVE_PLUS_Y[4] = {-1, 0, 1, 0};
         vector< vector<int> > g_cityMap;
         struct suchPointData {
          int timeCount;
          int seePoint;
          int seeChangeCount;
          int moveDistance;
          POINT nowPoint;
  • MoreEffectiveC++/Exception . . . . 6 matches
         여기에서 재미있는 기법을 이야기 해본다. 차차 소개될 smart pointer와 더불어 Standard C++ 라이브러리에 포함되어 있는 auto_ptr template 클래스를 이용한 해결책인데 auto_prt은 이렇게 생겼다.
          void displayIntoInfo(const Information& info)
          WINDOW_HANDLE w(createWindow());
          display info in window corresponding to w;
          destroyWindow(w);
         일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
          WindowHandle(WINDOW_HANDLE handle) : w(handle) {}
          ~WindowHandle() {destroyWindow(w); }
          operator WINDOW_HANDLE() {return w;}
          WINDOW_HANDLE w;
          WindowHandle(const WindowHandle&);
          WindowHandle& operator=(const WindowHandle);
          void displayIntoInfo(const Information& info)
          WINDOW_HANDLE w(createWindow());
          display info in window corresponding to w;
         == Item 10: Prevent resource leaks in constructors. ==
          Image(const string& imageDataFileName);
          AudioClip(const string& audioDataFileName);
          BookEntry(const string& name,
          const string& address = "",
  • NSIS_Start . . . . 6 matches
          * 프로젝트 이름 : NSIS Start (About Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System)
          * 주제 : Installer Program 에 대한 이해를 위해. free software 인 Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System 영문메뉴얼을 보면서 한글 메뉴얼을 만든다.
          * 간단한 Installer (그냥 해당 디렉토리에 압축 풀리는 정도로.)
          * simple / full / custom 설정 가능한 Installer
          * uninstaller 포함된 Installer
  • OpenGL스터디_실습 코드 . . . . 6 matches
         skyLibrary_include
         = Intro =
         #include <gl/glut.h>
         #include <gl/GL.h>
         #include <gl/GLU.h>
         GLfloat windowWidth;
         GLfloat windowHeight;
         //callback for rendering
         void TimerFunction(int value)
          //if rectangle collision to window x-axis wall, then reverse it's x-axis direction
          if(x1 > windowWidth - rsize || x1 < -windowWidth)
          //if rectangle collision to window y-axis wall, then reverse it's y-axis direction
          if(y1 >windowHeight || y1 < -windowHeight + rsize )
          if(x1 > windowWidth - rsize + xstep)
          x1 = windowWidth - rsize - 1;
          else if(x1 < -(windowWidth + xstep))
          x1 = -windowWidth - 1;
          if(y1 > (windowHeight + ystep))
          y1 = windowHeight - 1;
          else if(y1 < -(windowHeight - rsize +ystep))
  • PrimaryArithmetic/sun . . . . 6 matches
         지금 생각해보면 {{{~cpp testNoNumber}}}는 필요없는것 같다. 나중에 글을 쓰다보니, 같이 쓰게 됬는데 원래는 위의 테스트를 먼저 작성하고 테스트 통과후 아래쪽 테스트를 추가했다. 이번 작업과 별도로 '''코딩후에 뭔가하자'''는 결국 놓치는게 많다는걸 다시한번 증명하게 된다. :) ''see [http://jania.pe.kr/wiki/jwiki/moin.cgi/NowOrNever NowOrNever]''
          private int number;
          private int numPointer;
          public NumberGenerator( int number ) {
          init();
          private void init() {
          numbers = String.valueOf(number).getBytes();
          numPointer = numbers.length - 1;
          return numPointer >= 0;
          public int next() {
          return numbers[numPointer--] - '0';
          int [][] sets = {
          for( int i=0; i<sets.length; i++ ) {
          int expected = sets[i][0];
          int num1 = sets[i][1];
          int num2 = sets[i][2];
          private void verify(int expected, int num1, int num2) {
          int result = PrimaryArithmetic.add(num1, num2);
          public static int add( int num1, int num2 ) {
          NumberGenerator ng2 = new NumberGenerator( Math.min(num1, num2) );
  • ProgrammingContest . . . . 6 matches
         == Internet Problem Solving Contest ==
          ''Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천''
         수준이 궁금하신 분들은 K-In-A-Row를 풀어보세요. http://ipsc.ksp.sk/problems/prac2002/sampl_r.php
         만약 자신이 K-In-A-Row를 한 시간 이상 걸려도 풀지 못했다면 왜 그랬을까 이유를 생각해 보고, 무엇을 바꾸어(보통 완전히 뒤집는 NoSmok:역발상 으로, 전혀 반대의 "極"을 시도) 다시 해보면 개선이 될지 생각해 보고, 다시 한번 "전혀 새로운 접근법"으로 풀어보세요. (see also DoItAgainToLearn) 여기서 새로운 접근법이란 단순히 "다른 알고리즘"을 의미하진 않습니다. 그냥 내키는 대로 프로그래밍을 했다면, 종이에 의사코드(pseudo-code)를 쓴 후에 프로그래밍을 해보고, 수작업 테스팅을 했다면 자동 테스팅을 해보고, TDD를 했다면 TDD 없이 해보시고(만약 하지 않았다면 TDD를 하면서 해보시고), 할 일을 계획하지 않았다면 할 일을 미리 써놓고 하나씩 빨간줄로 지워나가면서 프로그래밍 해보세요. 무엇을 배웠습니까? 당신이 이 작업을 30분 이내에 끝내려면 어떤 방법들을 취하고, 또 버려야 할까요?
         만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.
         또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.
         http://www.uwp.edu/academic/mathematics/usaco/ or http://www.usaco.org
         http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. ["이덕준"]은 ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
  • PyUnit . . . . 6 matches
         === Python Unit Testing Framework PyUnit 에 대해서 ===
         unit testing 의 가장 기본적인 코드 블록 단위. 셋팅과 모듈이 제대로 돌아가는지를 체크하기 위한 하나의 시나리오가 된다.
          widget = Widget("The widget")
          assert widget.size() == (50,50), 'incorrect default size'
         테스팅을 하기 위해 Python의 assert 구문을 사용한다. testcase가 실행될 때 assertion을 실행하면 AssertionError 가 일어나고, testing framework는 이 testcase를 'failure' 했다고 정의할 것이다. 'assert' 를 명시적으로 써놓지 않은 부분에서의 예외가 발생한 것들은 testing framework 에서는 'errors'로 간주한다.
         다행스럽게도 우리는 setUp 라는, testing framework가 테스팅을 할때 자동으로 호출해주는 메소드를 구현함으로서 해결할 수 있다.
          self.widget = Widget("The widget")
          assert self.widget.size() == (50,50), 'incorrect default size'
          self.widget = Widget ("The widget")
         이러한 testing code를 위한 작업환경을 'fixture' 라고 한다.
          self.widget = Widget ("The widget")
          assert self.widget.size() == (50,50), 'incorrect default size'
          def __init__(self):
          unittest.TestSuite.__init__(self, map(WdigetTestCase, "testDefaultSize", "testResize")))
         suite1 = module1.TheTestSuite ()
         suite2 = module2.TheTestSuite ()
          * command line에서 test module를 단독적으로 실행할 수 있다.
          * 테스트 된 코드를 refactoring 하기 더 용이해진다.
         기본적으로 TextTestRunner는 sys.stderr에 출력한다. TextTestrunner 같은 클래스는 Python interpreter session과 상호작용하면서 test들을 실행시켜볼 수 있는 이상적인 방법이다.
          if not hasattr(something, "blah"):
  • RandomWalk/영동 . . . . 6 matches
         #include<iostream.h>
         #include<stdlib.h>
         #include<time.h>
         int main()
          int i, j;
          int a, b;
          int way;//이동 방향
          int count=1;//이동 횟수
          int not_go=1;//아직 가지 않은 곳을 셀 때 쓰는 수
          int input;
          cin>>input;
          int **square=new int *[input];
          for(i=0;i<input;i++)
          square[i]=new int [input];
          for(i=0;i<input;i++){
          for(j=0;j<input;j++)
          a=rand()%input;
          b=rand()%input;
          continue;
          continue;
  • Robbery/조현태 . . . . 6 matches
          경우의 수가 여러가지 나오는 경우를 어떻게 처리할까 고민했는데.. 못찾은 걸로 할까? 아니면 답으로 간주해서 출력할까? 하다가, 이 경우는 못찾은 걸로 처리하였다. ( "Nothing known." 으로 출력된다. )
          이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
         #include <iostream>
         #include <Windows.h>
         #include <vector>
         #include <algorithm>
         #include <atltypes.h>
         using namespace std;
         #define CAN_MOVE_POINT 0
         #define DONT_MOVE_POINT 1
         vector< vector< vector<int> > > g_cityMap;
         vector< vector<POINT> > g_canMovePoints;
         vector<int> g_saveMessageTime;
         vector< vector<POINT> > g_maxPoints;
         void InitCityMap(int cityWidth, int cityHeight, int keepTime)
          g_maxPoints.clear();
          g_canMovePoints.clear();
          g_canMovePoints.resize(keepTime);
          for (register int i = 0; i < (int)g_cityMap.size(); ++i)
          for(register int j = 0; j < (int)g_cityMap[i].size(); ++j)
  • TAOCP/BasicConcepts . . . . 6 matches
         1) 유한성(Finiteness)
         2) 명확성(Definiteness)
         3) 입력(Input)
          Comparison indicator, - EQUAL, LESS, GREATER
          Input, Output Devices
          * Instruction format
          C - 명령어 코드(the poeration code)
          F - 명령어의 변경(a modification of the operation code). (L:R)이라면 8L+R = F
          ±AA - 메모리 주소(the address)
          I - 인덱스(the index specification). 값이 1~6으로 rI1~rI6에 있는 내용과 메모리 주소를 더함
          * Loading operators.
          LDA, LDX, LDi, LDAN, LDXN, LDiN이 있다.
          * Storing operators.
          이 연산에서 M은 메모리 셀을 가리키지 않고, 그냥 부호있는 숫자로 쓰인다. ENTr, ENNr, INCr, DECr가 있다. ( r은 A, X, 1~6)
          M이 가리키는 메모리 셀로 점프한다. JSJ를 빼면 점프를 하면서 점프 명령어 다음 위치를 rJ에 저장한다. the comparison indicator를 이용하거나(JL, JE, JG, JGE, JLE, JNE) , 레지스터(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)를 이용한다.
          HLT 명령은 기계를 멈춘다(The machine stops.)
          * Input-output opertors.
          * Timing
         순열은 abcdef를 재배열(rearrangement)이나 이름바꾸기(renaming)를 해서 얻는다고 볼 수 있다. 이를 다음과 같이 표시할 수 있다.(p.164참조)
         * Timing
  • TheGrandDinner . . . . 6 matches
         [http://online-judge.uva.es/p/v102/10249.html 원문보기]
         === About [TheGrandDinner] ===
         === Input ===
         === Sample Input ===
          || [조현태] || C++ || ??? || [TheGrandDinner/조현태] ||
          || [김상섭] || C++ || 많이..ㅡㅜ || [TheGrandDinner/김상섭] ||
          || [하기웅] || C++ || 생각은 많이. 코딩 시작해서는 1시간 || [TheGrandDinner/하기웅] ||
  • ThePriestMathematician . . . . 6 matches
         [http://online-judge.uva.es/p/v102/10254.html 원문보기]
         === About [ThePriestMathematician] ===
         [http://online-judge.uva.es/p/v102/p10254b.jpg]
         === Input ===
         === Sample Input ===
          || 김상섭 || C++ || . || [ThePriestMathematician/김상섭] ||
          || 문보창 || C++ || 1차(실패), 2차(5시간) || [ThePriestMathematician/문보창] ||
          || 하기웅 || C++ || 2시간 30분 || [ThePriestMathematician/하기웅] ||
  • ThePriestMathematician/하기웅 . . . . 6 matches
         #include <iostream>
         #include <limits.h>
         #include "BigInteger.h"
         using BigMath::BigInteger;
         #define MAX_DISK 10000
         BigInteger fourPin[MAX_DISK+1];
         int i, k, number, counting, exponent;
         BigInteger bi = 2;
         void hanoiInit()
          counting = 1;
          while(counting<=MAX_DISK)
          for(k=counting; k<=counting+exponent && k<=MAX_DISK; k++)
          fourPin[k] = fourPin[k-1] + bi.Power(exponent);
          counting = k;
         int main()
          hanoiInit();
          while(cin>>number)
          cout<<fourPin[number]<<endl;
  • TugOfWar/김회영 . . . . 6 matches
         #include<iostream.h>
         //using namespace std;
         bool changeTwoPart(int* right,int* left,int gap,int nPeople);
         void changeTwoElement(int* rightPart,int i,int* leftPart,int j);
         void sort(int* array,int count);
         void main()
          int nCount;
          cin>>nCount;
          int nPeople;
          int* nWeightOfPeople;
          int* leftPart;
          int* rightPart;
          int rightTotal=0;
          int leftTotal=0;
          int* rightOfTotal=new int[nCount];
          int* leftOfTotal=new int[nCount];
          for(int k=0;k<nCount;k++)
          cin.get();
          cin>>nPeople;
          nWeightOfPeople=new int[nPeople];
  • WikiSandBox . . . . 6 matches
         서 "HelpOnEditing" 을 누르시면 거나, Middle(마우스휠) Key 를 이용하면 help pages가 다른
          1. NoSmok:WikiName'''''' 을 써 봅시다. 영어 알파벳의 첫글자를 대문자로 해서, 단어 첫머리마다 대
          * 예 : LifeStyle WikiSandBox SimpleLink
          * 여기서는 실제로 "?" 표시를 누르고 한글로도 링크를 만들 수 있는 ExtendedWikiName 을
         여기서 Heading (단락줄) 모양이 바뀐 것을 주목하세요.
         흔히 사용되는 두가지 horizontal line 의 차이점을 보세요.
         Heading 모양에 따라 계통 (hierachy) 을 알 수 있으시죠? Table 하나 보고 갑니다.
         pre-formatted, No heading, No tables, No smileys. Only WikiLinks
         a MoniWiki python colorizer using the VimProcessor
         def print_element(bla):
          print '''bla this sucks.'''
         print "Hello World";
          * InterWiki
          * MeatBall:InterWiki
          * wiki:MeatBall:InterWiki
          * [wiki:MeatBall:InterWiki]
          * [wiki:MeatBall:InterWiki InterWiki page on MeatBall]
         var member = {"Name" : "Linflus"}
  • WinSock . . . . 6 matches
         Windows Socket API. Win32 API 에 기본적으로 지원한다.
         일반적인 버클리 소켓 스타일과 Windows 자체 스타일의 비동기소켓 (윈도우 메세지를 이용하는 방법, IOCP) API 를 제공해준다.
         다음은 화일보내고 받기 관련 Winsock API 간단 예제. (옛날 예제삼아 만든 소스여서 직관적이지가 않긴 하군 -_-; 그냥 이해의 차원정도)
         #include <winsock2.h>
         #include <windows.h>
         #include <stdio.h>
         #include <process.h>
         DWORD WINAPI Threading (LPVOID args)
          HANDLE hFileIn;
          int nSended;
          hFileIn = CreateFile ("d:\test.mp3", GENERIC_READ, FILE_SHARE_READ,
          NULL, OPEN_EXISTING, NULL, NULL);
          dwLow = GetFileSize (hFileIn, &dwHigh);
          SetFilePointer (hFileIn, i, NULL, FILE_BEGIN);
          ReadFile (hFileIn, szBuffer, sizeof (szBuffer), &nRead, NULL);
          printf ("Error : %d n", WSAGetLastError ());
          printf ("Current : %d / %d (%d)n", dwLow, i, nSended);
          CloseHandle (hFileIn);
         int main (void)
          sockaddr_in local, from;
  • [Lovely]boy^_^/USACO/MixingMilk . . . . 6 matches
         #include <iostream>
         #include <fstream>
         #include <map>
         #include <vector>
         #include <algorithm>
         using namespace std;
         ifstream fin("milk.in");
         void InputInitData(int& suf, int& numf, map<int,int>& data, vector<int>& numlist);
         int Process(int& suf, int& numf, map<int,int>& data, vector<int>& numlist);
         void OutputData(int& numf, map<int,int>& data, vector<int>& numlist);
         int main()
          int numf, suf;
          map<int,int> data;
          vector<int> numlist;
          InputInitData(suf, numf, data, numlist);
         void InputInitData(int& suf, int& numf, map<int,int>& data, vector<int>& numlist)
          fin >> suf;
          fin >> numf;
          int cost, amount;
          for(int i = 0 ; i < numf ; ++i)
  • [Lovely]boy^_^/USACO/PrimePalinDromes . . . . 6 matches
         #include <iostream>
         #include <string>
         #include <fstream>
         #include <cmath>
         using namespace std;
         ifstream fin("pprime.in");
         void InputMinMax(int& n, int& m);
         string IntConvertToString(int n);
         bool IsPrime(const int& n);
         bool IsPalinDromes(const string& str);
         void OutputResult(const int& n, const int& m);
         void FillPrimeList(const int& n, const int& m);
         int main()
          int max,min;
          InputMinMax(min, max);
          OutputResult(min,max);
         void InputMinMax(int& min, int& max)
          fin >> min;
          fin >> max;
         void OutputResult(const int& min, const int& max)
  • [Lovely]boy^_^/영작교정 . . . . 6 matches
          * [[HTML(<STRIKE>)]] He is appointed a most prestigious duty in the University. [[HTML(</STRIKE>)]]
          * He was appointed to the most prestigious duty in the University.
          * David revealed his powerful ablity in language.
          * [[HTML(<STRIKE>)]] Developing Countrys strive for technical and economical advancement for years. [[HTML(</STRIKE>)]]
          * Developing countries have striven for technological and economical advancement for years.
          * Do you foresee some problems in the new system?
          * The detective uncovered so many new proofs.
          * [[HTML(<STRIKE>)]] It is impossible to ascertain that who was here until last.[[HTML(</STRIKE>)]]
          * It is impossible to ascertain who was here last.
          * [[HTML(<STRIKE>)]] The train conveied us to arrival point. [[HTML(</STRIKE>)]]
          * The train conveyed us to the arrival point.
          * [[HTML(<STRIKE>)]] We must curb the far right's effect power.[[HTML(</STRIKE>)]]
          * We must curb the far right's power.
          * [[HTML(<STRIKE>)]] He will terminate the argument at there.[[HTML(</STRIKE>)]]
          * He will terminate the argument there.
          * [[HTML(<STRIKE>)]] It is refreshing that meet with man has same thinking.[[HTML(</STRIKE>)]]
          * It is refreshing to meet with a man who has the same thingking.
          * [[HTML(<STRIKE>)]] I am reluctant that involved a happening.[[HTML(</STRIKE>)]]
          * I am reluctant in getting involved in the event.
          * [[HTML(<STRIKE>)]] Childs were very suprised that sound so they screamed.[[HTML(</STRIKE>)]]
  • html5practice/즐겨찾기목록만들기 . . . . 6 matches
          * 원래 목적은 naver api를 끌고 와서 별표 찍는 연습을 만들려고 했는데. 이건 뭐. ajax cross domain 문제로 접근 불가. 난이도 하향. 로컬 목록을 사용자가 만들어서 그걸 즐겨찾기 추가 삭제 하는 코드를 만들었음. 기능과 UI가 안습이지만, 그래도. 만들었음.
         <section id="input">
          <form name="formInput">
          <input type="text" id="textInput"/>
          <input type="button" value="add to list" onclick="doSetItem(this.form)"/>
          <input type="button" value="clear" onclick="doClearAll()"/>
          localStorage.setItem( document.formInput.elements['textInput'].value, "false");
          document.formInput.elements['textInput'].value = "";
          console.log(eTD.innerHTML);
          localStorage.removeItem(eTD.innerHTML);
          localStorage.setItem(eTD.innerHTML, "true");
          console.log(eTD.innerHTML);
          localStorage.removeItem(eTD.innerHTML);
          localStorage.setItem(eTD.innerHTML, "false");
          document.getElementById('favoriteList').innerHTML = pairs;
          document.getElementById('allList').innerHTML = pairs;
  • randomwalk/홍선 . . . . 6 matches
         const int Direction = 8; // 바퀴벌레가 움직이는 8방향
         const int imove[8] = {-1,0,1,1,1,0,-1,-1}; // 바퀴벌레가 움직이는 방향의 x 좌표 증감
         const int jmove[8] = {1,1,1,0,-1,-1,-1,0}; // 바퀴벌레가 움직이는 방향의 y 좌표 증감
         int Tile[40][20] = {0,}; // 바퀴벌레가 돌아다니는 타일의 배열화
         int size_x, size_y; // x, y 좌표의 타일 갯수
         int count,t,R_count=0; // 바퀴벌레의 이동횟수, 랜덤 숫자, 바퀴벌레가 모든 타일을 돌아다니도록 하는 카운터
          int Pos_x, Pos_y; // 바퀴벌레의 위치
          void Initiation(); // 타일의 초기화
          void Input(); // 바퀴벌레의 시작위치 입력함수
         void Roach :: Initiation() // 타일의 초기화
          while(!(cin >> size_x) || size_x<3 || size_x > 40)
          while(!(cin >> size_y) || size_y < 3 || size_y >20)
         void Roach :: Input() // 바퀴벌레의 시작위치 입력함수
          int i,j;
          cin >> i;
          cin >> j;
          for(int m=0; m < size_x; m++){
          for(int n=0; n < size_y; n++)
         #include <iostream.h>
         #include <cstdlib>
  • 기술적인의미에서의ZeroPage . . . . 6 matches
         6502 는 16bit addressing이 가능한 CPU 였습니다. 즉, $0000 ~ $FFFF 였죠.
         6502 는 13가지 메모리 access 방식이 있었는데, 그중 하나가 zero page addressing 입니다.
         주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
         The zero page instructions allow for shorter code and excution times by only feching the
         second byte of the instruction and assumming a zero high address byte.
         Careful use of the zero page can result in significant increase in code efficient.
         The zero page is the memory address page at the absolute beginning of a computer's address space (the lowermost page, covered by the memory address range 0 ... page size?1).
         In early computers, including the PDP-8, the zero page had a special fast addressing mode, which facilitated its use for temporary storage of data and compensated for the relative shortage of CPU registers. The PDP-8 had only one register, so zero page addressing was essential.
         Possibly unimaginable by computer users after the 1980s, the RAM of a computer used to be faster than or as fast as the CPU during the 1970s. Thus it made sense to have few registers and use the main memory as substitutes. Since each memory location within the zero page of a 16-bit address bus computer may be addressed by a single byte, it was faster, in 8-bit data bus machines, to access such a location rather than a non-zero page one.
         For example, the MOS Technology 6502 has only six non-general purpose registers. As a result, it used the zero page extensively. Many instructions are coded differently for zero page and non-zero page addresses:
         예를 들자면 the MOS Technology 6502 는 오직 6개의 non-general 목적을 가진 레지스터를 가지고 있었다. 결과적으로 이는 것은 제로페이지라는 개념을 폭넓게 사용하였다. 많은 명령어들이 제로페이지와 제로페이지가 아닌 어드레씽을 위해서 다르게 쓰여졌다.
         The above two instructions both do the same thing; they load the value of $00 into the A register. However, the first instruction is only two bytes long and also faster than the second instruction. Unlike today's RISC processors, the 6502's instructions can be from one byte to three bytes long.
         상기의 2개의 명령어 모두 동일한 일을 한다; 이것들은 A레지스터에 $00라는 값을 로드한다. 하지만 첫번째 명령어는 단지 2바이트길이 이고 두번째 명령어보다 더욱 빠르다. 오늘날의 RISC 프로세서와 다르게 the 6502의 명령어들은 1바이트에서 부터 3바이트의 길이가 되는 것이 가능하다.
         Zero page addressing now has mostly historical significance, since the developments in integrated circuit technology have made adding more registers to a CPU less expensive, and have made CPU operations much faster than RAM accesses. Some computer architectures still reserve the beginning of address space for other purposes, though; for instance, the Intel x86 systems reserve the first 512 words of address space for the interrupt table.
         http://lxr.linux.no/source/Documentation/i386/zero-page.txt
  • 데블스캠프2009/목요일/연습문제/MFC/송지원 . . . . 6 matches
         #if !defined(AFX_TESTDLG_H__B619E89A_C192_46A8_8358_6AC21A6D48CC__INCLUDED_)
         #define AFX_TESTDLG_H__B619E89A_C192_46A8_8358_6AC21A6D48CC__INCLUDED_
          int opFlag;
          virtual BOOL OnInitDialog();
          afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
          afx_msg void OnPaint();
          afx_msg void OnBUTTONminus();
          afx_msg void fourOp(int num);
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_TESTDLG_H__B619E89A_C192_46A8_8358_6AC21A6D48CC__INCLUDED_)
         #include "stdafx.h"
         #include "test.h"
         #include "testDlg.h"
         #define new DEBUG_NEW
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
         BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
          //{{AFX_DATA_INIT(CTestDlg)
          //}}AFX_DATA_INIT
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 6 matches
          * 가장 느리고 무식한 Linear Search로도 문제해결 했다를 보여주는 의지의 한국인 코드
          * 다른 분들과 달리, 저는 한 글자인 문자와 특수문자를 첫 글자로 포함하는 단어들은 Train Data 및 Test Data 분석에 포함시키지 않았습니다.
         === Train File Analysis ===
         import java.util.StringTokenizer;
          String filename;
          List<String> articles;
          public List<String> data;
          public List<Integer> frequency;
          FileAnalasys(String f){
          articles = new ArrayList<String>();
          data = new ArrayList<String>();
          frequency = new ArrayList<Integer>();
          String line;
          String str;
          line = br.readLine();
          while(line != null){
          articles.add(line);
          StringTokenizer st = new StringTokenizer(line, " ");
          for(int i=0; i<data.size(); i++){
          line = br.readLine();
  • 레밍즈프로젝트/프로토타입/STLLIST . . . . 6 matches
         || CList || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp] ||
         || GetHead || Returns the head element of the list (cannot be empty). ||
         || GetTail || Returns the tail element of the list (cannot be empty). ||
         || RemoveHead || Removes the element from the head of the list. ||
         || RemoveTail || Removes the element from the tail of the list. ||
         || AddHead || Adds an element (or all the elements in another list) to the head of the list (makes a new head). ||
         || AddTail || Adds an element (or all the elements in another list) to the tail of the list (makes a new tail). ||
         || RemoveAll || Removes all the elements from this list. ||
         || GetHeadPosition || Returns the position of the head element of the list. ||
         || GetTailPosition || Returns the position of the tail element of the list. ||
         || GetNext || Gets the next element for iterating. ||
         || GetPrev || Gets the previous element for iterating. ||
         || GetAt || Gets the element at a given position. ||
         || SetAt || Sets the element at a given position. ||
         '''Insertion'''
         || InsertBefore || Inserts a new element before a given position. ||
         || InsertAfter || Inserts a new element after a given position. ||
         '''Searching'''
         || Find || Gets the position of an element specified by pointer value. ||
         || FindIndex || Gets the position of an element specified by a zero-based index. ||
  • 만년달력/영동 . . . . 6 matches
         import javax.swing.*;
          public static void main(String []args)
          int[] daysOfMonth={31, 28, 31, 30, 31,30, 31, 31, 30, 31, 30, 31};//각 달의 날짜수
          String[] nameOfday={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};//각 요일의 이름
          int dYear=Integer.parseInt(JOptionPane.showInputDialog(null, "알고 싶은 연도 입력:", "만년달력", JOptionPane.QUESTION_MESSAGE));
          int dMonth=Integer.parseInt(JOptionPane.showInputDialog(null, "알고 싶은 월 입력:", "만년달력", JOptionPane.QUESTION_MESSAGE));
          int totalDays=0;//그 해까지의 총 날짜수
          for(int i=1;i<dYear;i++)
          for(int i=1;i<dMonth;i++)//해당하는 해의 그 전달까지의 날짜수
          System.out.println(dYear+"년 "+dMonth+"월의 달력");
          for(int i=0;i<7;i++)//달력의 상단에 요일 출력
          System.out.print(nameOfday[i]+"\t");
          System.out.print("\n");
          for(int i=0;i<(totalDays+1)%7;i++)
          System.out.print("\t");//해당 달의 첫날의 요일 설정. +1인 이유는 1년 1월 1일은 일요일
          for(int i=1;i<daysOfMonth[dMonth-1]+1;i++)
          System.out.print(i+"\t");
          System.out.print("\n");
          System.out.print("\n");
  • 몸짱프로젝트 . . . . 6 matches
         SeeAlso [HowToStudyDataStructureAndAlgorithms] [DataStructure] [http://internet512.chonbuk.ac.kr/datastructure/data/ds1.htm 자료구조 정리]
          * 참고한 책 : ProgrammingPearls(번역서 [생각하는프로그래밍])
          SeeAlso IntroductionToAlgorithms
         || BinarySearch || [몸짱프로젝트/BinarySearch] ||
         || LinearSearch || . ||
         || Invert 기능 || [몸짱프로젝트/Invert] ||
         [몸짱프로젝트/BinarySearchTree]
         [몸짱프로젝트/MinimalCostSpanningTree]
         || FindShortestPath || [몸짱프로젝트/ShortestPaths] ||
         || prefix Infix postfix || [몸짱프로젝트/InfixToPostfix], [몸짱프로젝트/InfixToPrefix] ||
          * Palindrome
  • 몸짱프로젝트/BinarySearchTree . . . . 6 matches
          === Before Refactoring ===
         class BinartSearchTree:
          def __init__(self):
          def insert(self, aRoot, aKey):
         ## child = self.getSingleChild(node)
          child = self.getSingleChild(node)
          child = self.getSingleChild( largest )
          def getSingleChild( self, aNode ):
          def __init__(self, aKey = -1):
         class BinartSearchTreeTestCase(unittest.TestCase):
          bst = BinartSearchTree()
          bst = BinartSearchTree()
          def testInsert(self):
          bst = BinartSearchTree()
          bst.insert(bst.root, 1)
          self.assertEquals(bst.insert(bst.root, 1), False)
          bst.insert(bst.root, 5)
         ## bst = BinartSearchTree()
         ## bst.insert(bst.root, 10)
         ## bst.insert(bst.root, 5)
  • 새싹교실/2012/개차반 . . . . 6 matches
          * High-level의 programming skill보단 low-level의 HW적인 구조를 설명하여 low-level에서 접근하는 독특한(...) 코딩 스타일 전수
          * binary digit를 비롯한 컴퓨터 시스템의 기초적인 개념 또한 설명
          * variable 및 main function의 역할 설명
          * #include가 무엇인지 header file이 무엇인지 설명
          * 컴파일러의 역할과 compile -> link -> build 과정 설명
          * Low-Level 언어에 가까울수록 기계가 이해하기 쉬워진다 (Machine Friendly)
          * int, float, char 등
          * int는 정수를 나타내고자 할 때 사용하며 출력시 %d를 사용
          * int: integer type, 4 bytes
          * char: It used to express a character, but also used to express a integer. 1 byte
          * float: 4 byte, floating type number. Specification in IEEE 754-2008
          * function: input -> output
          * Main function
          * It has start and end point of a program.
          * return 0; : 0 is a flag noticing OS that program is ended.
          * Integer type: int(4 bytes), char(1 byte, be often used to express a character)
          * Maximum, minimum value of int(경우의 수 이용)
          * printf, scanf
          * #define
          * Example Problem: Write a program that converts meter-type height into [feet(integer),inch(float)]-type height. Your program should get one float typed height value as an input and prints integer typed feet value and the rest of the height is represented as inch type. (1m=3.2808ft=39.37inch) (출처: 손봉수 교수님 ppt)
  • 오목/휘동, 희경 . . . . 6 matches
         // grimView.h : interface of the CGrimView class
         #if !defined(AFX_GRIMVIEW_H__A8571F68_AE69_11D7_A974_0001029897CD__INCLUDED_)
         #define AFX_GRIMVIEW_H__A8571F68_AE69_11D7_A974_0001029897CD__INCLUDED_
         const int size = 30;
         const int room = 30;
          int x[room*room], y[room*room], number;
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
          virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
          afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
         #ifndef _DEBUG // debug version in grimView.cpp
         inline CGrimDoc* CGrimView::GetDocument()
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         #endif // !defined(AFX_GRIMVIEW_H__A8571F68_AE69_11D7_A974_0001029897CD__INCLUDED_)
  • 임인택/내손을거친책들 . . . . 6 matches
          * Introduction to Functional Programming using Haskell
          * The Haskell School of Expression
          * An introduction to functional programming through lambda calculus
          * ObjectOrientedReengineeringPatterns
          * ReadingWithoutNonsense
          * Firefox hacks : tips & tools for next-generation web browsing
          * PairProgramming Illuminated
          * IPv6 Clearly Explained
          * IPv6, The New Internet Protocol
          * RefactoringWorkbook
          * TheElementsOfStyle + TheElementsOfProgrammingStyle
  • 지금그때2004 . . . . 6 matches
         || wiki:NowThen2004/패널토의 ||
         || wiki:NowThen2004/OST종합 = wiki:NowThen2004/복수전공 + wiki:NowThen2004/시간관리 + ? ||
         wiki:NowThen2004/지금그때2004 에서 활동을 정리하세요.
         wiki:NowThen2004/지금그때2004/후기 에서 후기를 기록해 주세요.
         그때의 사진을 찾습니다.'''--NeoCoin
          휘동이가 좋은 기회를 놓칠지 모르겠군. --NeoCoin
          * 연기해서 다음주 화요일인가요? 일주일이라서 저는 수요일인줄 알았는데.. 어떻게 된건지요? --NeoCoin
         Berkeley Visionaries Prognosticate About the Future http://netshow01.eecs.berkeley.edu/CS-day-004/Berkeley_Visionaries.wmv 이걸 보면 대충 감이 올겁니다. 이 동영상의 경우 뛰어난 패널진에 비해 진행자가 그리 좋은 질문을 하지 못해서 아쉽기는 합니다. 좋은 질문을 하려면 서점이나 도서관에서 [질문의 힘]이라는 책을 읽어보세요. 그리고 04학번 눈높이의 질문에 대한 고학번들의 생각을 들어보는 것도 중요하지만 04학번이 전혀 생각 못하는 질문을 대신 물어주는 것도 중요합니다. 고객과 요구사항을 뽑는 것과 비슷할 수 있겠죠. "그들이 원하는 것"은 물론 "그들이 필요로 하는 것"(주로, 나중에 그들이 원할만한 것)을 이야기해야 하니까요 -- 또 종종 그들은 자신이 뭘 원하는지 모르는 경우도 많습니다.
  • 토이/메일주소셀렉터/김정현 . . . . 6 matches
         public class Main {
          public static void main(String[] args) {
          String input;
          input= "input.txt";
          else input = args[0];
          String[] deleteList= {" ", "\n"};
          io.insertDeleteList(deleteList);
          io.insertSpace(true);
          io.write("result.txt", io.getRemadeFromFile(input));
          private String[] deleteList= {};
          private boolean shouldInsertSpace;
          shouldInsertSpace= false;
          public void write(String fileName, String text) {
          e.printStackTrace();
          public String read(String fileName) {
          String resultString= "";
          resultString += br.readLine();
          e.printStackTrace();
          e.printStackTrace();
          return resultString;
  • 토이/숫자뒤집기/임영동 . . . . 6 matches
          * 입력받은 문자열을 숫자로 변환한 뒤 10으로 나눠주면서 그 나머지를 String에 붙여버린다. 그 후 출력.
         import javax.swing.*;
         public class ProgrammingExercise5_04{
          public static void main(String[] args)
          int inputNumber=Integer.parseInt(JOptionPane.showInputDialog(null, "Input a number that you want to reverse."));
          int reversedNumber=reverse(inputNumber);//뒤집을 숫자를 입력받고 reverse()호출
          public static int reverse(int number)
          String reversed="";
          int returnNumber=Integer.parseInt(reversed);
  • 2dInDirect3d . . . . 5 matches
         원제 : Focus On 2D In Direct 3D
          * ["2dInDirect3d/Chapter1"]
          * ["2dInDirect3d/Chapter2"]
          * ["2dInDirect3d/Chapter3"]
          * ["2dInDirect3d/Chapter4"]
  • 2학기자바스터디/운세게임 . . . . 5 matches
          System.out.println(today); // 바로 today가 String으로 자동변환되어 오늘 날짜 출력
          System.out.println(dateForm.format(today)); // today란 Date객체를 dateForm의 출력형식에 맞게 출력
          Calendar now = Calendar.getInstance(); // 새로운 객체를 생성하지않고 시스템으로부터 인스턴스를 얻음
          int hour = now.get(Calendar.HOUR); // 시간 정보 얻기
          int min = now.get(Calendar.MINUTE); // 분 정보 얻기
          || MINUTE || 분 ||
          int num = r.nextInt(); // Int범위(-2147483648 ~ 214783647) 에서 난수 발생
          int num2 = r.nextInt() % 10; // -9 ~ 9 사이의 난수 구하기
          int num3 = Math.abs(r.nextInt() % 10); // 0 ~ 9 사이의 난수 구하기. Math.abs()는 절대값을 구함
  • 5인용C++스터디/멀티미디어 . . . . 5 matches
         MFC는 멀티미디어를 위한 별도의 클래스를 제공하지 않는다. Win32 API함수 차원에서 멀티미디어를 지원하기 때문에 MFC에서는 별도의 클래스로 만들어 놓지 않은 것이다.
         #include "mmsystem.h"
          PlaySound 함수를 사용하려면 mmsystem.h 파일을 먼저 include 해주어야 하고,
          Project/ Settings/Link 탭에서 winmm.lib를 링크해 주어야 한다.
          리소스에 포함된 사운드를 연주하려면 PlaySound의 세 번째 인수에 SND_RESOURCE 플래그를 주고 첫 번째 인수에 리소스의 ID를 준다. 두 번째 인수에는 리소스를 가진 실행파일의 인스턴스 핸들을 주어야 하는데 MFC에서는 AfxGetInstanceHandle() 전역함수로 인스턴스 핸들을 구할 수 있다. 다음과 같이 코드를 작성해 보자.
         void CSoundView::OnLButtonDown(UINT nFlags, CPoint point)
          PlaySound(MAKEINTRESOURCE(IDR_WAVE1), AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
          CView:OnLButtonDown(nFlags, point);
         1-4) MCI (Media Control Interface)
          hWndAVI=MCIWndCreate(this->m_hWnd, AfxGetInstanceHandle(), 0, "cf3.avi");
          CView::OnLButtonDown(nFlags, point);
          동영상 연주는 Video fot window 라이브러리를 사용하므로 뷰에서 vfw.h를 인클루드 해 주어야 한다.
         #include "PlayAVIDoc.h"
         #include "PlayAVIView.h"
         #include <vfw.h>
          또한 프로젝트에서 이 라이브러리를 사용할 수 있도록 Project/Settings/Link 탭에 vfw32.lib를 추가한다. 그리고 동영상 파일을 프로젝트 디렉토리에 넣어두면 된다.
         HWND MCIWndCreate(HWND hwndParent, HINSTANCE hinstance, DWORD dwStyle, LPSTR szFile);
         hInstance: MCIWnd롤 사용하는 인스턴스 핸들을 지정한다.
  • AdventuresInMoving:PartIV . . . . 5 matches
         [http://online-judge.uva.es/p/v102/10201.html 원문보기]
         === About [AdventuresInMoving:PartIV] ===
         === Input ===
         === Sample Input ===
         || 문보창 || C++ || 2일 || [AdventuresInMoving:PartIV/문보창] ||
         || 김상섭 || C++ || 2주일 || [AdventuresInMoving:PartIV/김상섭] ||
  • Ajax . . . . 5 matches
         Ajax or Asynchronous JavaScript and XML is a term describing a web development technique for creating interactive web applications using a combination of:
          * HTML (or XHTML) and CSS for presenting information
          * The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented
          * The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any text format will work, including preformatted HTML, plain text, and JSON)
         Like DHTML, LAMP, or SPA, Ajax is not a technology in itself, but a term that refers to the use of a group of technologies together. In fact, derivative/composite technologies based substantially upon Ajax, such as AFLAX are already appearing.
         Ajax applications use web browsers that support the above technologies as a platform to run on. Browsers that support these technologies include Mozilla Firefox, Microsoft Internet Explorer, Opera, Konqueror and Apple Safari.
         = Lookin =
         웹 상에선 요새 한참 인기인 중인 기술. RichInternetApplication 은 Flash 쪽이 통일할 줄 알았는데 (MacromediaFlex 를 보았던 관계로) 예상을 깨게 하는데 큰 공로를 세운 기술.;
  • Ant . . . . 5 matches
         Platform 독립적인 Java 의 프로그램 컴파일, 배포 도구 이다. 비슷한 역할로 Unix의 make 툴과 Windows에서 프로그램 Installer 를 생각할수 있다.
         Ant 는 OS Indepenent 하게 프로그램을 Build 할 수 있는 환경을 제공해준다. build.xml 이란 Build 파일을 작성해서 그 내용에 따라 Build 를 진행해 나갈 수 있다. Ant 는 ["Java"] 에서 거의 표준으로 굳혀져가고 있으며, 거의 모든 IDE들이 Ant 를 지원한다.
         === Install ===
         현재 Ant 는 Binary 와 Source 두가지를 배포하고 있습니다.
          * http://jakarta.apache.org/ant/index.html 에서 최신버전의 binary, source 를 얻을 수 있다. CVS 를 이용, source 를 얻을 수도 있다.
          Ant 의 몇몇 특정 Task 들의 경우 (JUnit, FTP, Telnet 등) 해당 라이브러리가 필요하다. 이는 http://jakarta.apache.org/ant/manual/install.html#librarydependencies 항목을 읽기 바란다.
          3. Install
          바이너리 파일을 기준으로 설명하겠습니다. 설치는 Windows 기반으로 설명하겠습니다. Unix/Linux 기반을 비슷하니 알아서(?) 하세요. ^^;
          * 일단 받은 Ant 압축파일을 C:\Ant 에 풀어 놓고 시작해봅시다. 하위 디렉토리는 bin,doc,lib 등이 있겠죠. ^^ (''Win 9x 시리즈에서는 환경변수에 들어가는 긴 파일명이 문제가 될 수 있으니 위와 같이 C:\Ant 에 설치하는 것이 좋습니다.'')
          * PATH 환경변수에 Ant 아래에 bin 디렉토리를 추가합니다. 즉 C:\Ant\bin 을 추가합니다.
         ===== Windows Shell =====
          set PATH=%PATH%;%ANT_HOME%\bin
         ===== Unix(Linux) (bash) =====
          export PATH=${PATH}:${ANT_HOME}/bin
         === Running ===
          이것은 바로 위에 있는 것에다가 dist라는 것이 붙었는데 이것은 target 을 나타냅니다. Unix/Linux 에서 make 명령으로 컴파일 해보신 분들을 아실껍니다. 보통 make 명령으로 컴파일 하고 make install 명령으로 인스톨을 하죠? 거기서 쓰인 install 이 target 입니다. Ant 에서는 Build 파일 안에 다양한 target 을 둘 수 있습니다. 예를 들면 debug 모드 컴파일과 optimal 모드 컴파일 2개의 target 을 만들어서 테스트 할 수 있겠죠? ^^
          실행 파일 ant는 Unix 계열에서는 shell 스크립트로 Windows 계열에서는 ant.bat 라는 배치파일로 배포됩니다. 내부에 보면 java 프로그램을 실행하는데, 다음과 같이 자신이 직접할 수도 있습니다.
          % java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]
          * ["Eclipse"], ["IntelliJ"]
          * [http://jstorm.pe.kr/BBS/files/colJApp/ant_jinho.pdf] - JStorm ant document
  • Atom . . . . 5 matches
         Atom is an XML-based document format and HTTP-based protocol designed for the syndication of Web content such as weblogs and news headlines to Web sites as well as directly to user agents. It is based on experience gained in using the various versions of RSS. Atom was briefly known as "Pie" and then "Echo".
         The completed Atom syndication format specification was submitted to the IETF for approval in June 2005, the final step in becoming an RFC Internet Standard. In July, the Atom syndication format was declared ready for implementation[1]. The latest Atom data format and publishing protocols are linked from the Working Group's home page.
         Before the Atom work entered the IETF process, the group produced "Atom 0.3", which has support from a fairly wide variety of syndication tools both on the publishing and consuming side. In particular, it is generated by several Google-related services, namely Blogger and Gmail.
         As well as syndication format, the Atom Project is producing the "Atom Publishing Protocol", with a similar aim of improving upon and standarizing existing publishing mechanisms, such as the Blogger API and LiveJournal XML-RPC Client/Server Protocol.
         [http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared RSSAtomCompare]
  • BuildingWikiParserUsingPlex . . . . 5 matches
         import cStringIO, StringIO
          def __init__(self, anInterWikiMap={}, aScriptName='', aMacros={}):
          self.interWikiMap = anInterWikiMap
          return cStringIO.StringIO(aText)
          return WikiParser(stream, self.interWikiMap,self.scriptName, self.macros).linkedLine()
          def getLinkStr(self, anUrl):
          extension = aFileUrl[aFileUrl.rfind(".")+1:]
          return extension in imgExtensions
          return self.getLinkStr(aText)
          def repl_interwiki(self, aText):
          if self.interWikiMap.has_key(wikiMapName):
          url = self.interWikiMap[wikiMapName]
          imageTag = "<IMG SRC=../intertag.gif BORDER=0>"
          url = self.scriptName+"/InterMap"
          imageTag = "<IMG SRC=../intertag.gif BORDER=1 ALT='Bad:%s'>"%(wikiMapName)
          def repl_pagelink(self, aText):
          def repl_pagelinkUsingUnderbar(self, aText):
          def repl_normalString(self, aText):
          # for auto link
          stringUntilSpace = Rep(AnyBut(" "))
  • C++/SmartPointer . . . . 5 matches
         = smart pointer =
         #define _SMARTPTR_H
         // reference countable smart point
         // circular member setting will not free memory
         // In other word, each object has the other object's smart pointer.
          int _Refcnt;
          IncRefcnt();
          IncRefcnt();
          IncRefcnt();
          void IncRefcnt()
          이런걸 안써도 되어서 Python이 재미있는 것일지도. (하지만 Extending 쪽에서는 결국 써야 하는.. 흑) --[1002]
  • CheckTheCheck . . . . 5 matches
         [http://online-judge.uva.es/p/v101/10196.html 원문보기]
         === About [CheckTheCheck] ===
          Queen King Knight
         === Input ===
         Game #d: white king is in check.
         Game #d: black king is in check.
         Game #d: no king is in check.
         === Sample Input ===
         Game #1: black king is in check.
         Game #2: no king is in check.
         Game #3: white king is in check.
          || 문보창 || C++ || . || [CheckTheCheck/문보창] ||
          || 곽세환 || C++ || . || [CheckTheCheck/곽세환] ||
  • ClassifyByAnagram/김재우 . . . . 5 matches
         import StringIO
          def testPrintAnagram( self ):
          outStr = StringIO.StringIO()
          a.printAnagram( output = outStr )
          def testMainFunc( self ):
          inStr = StringIO.StringIO()
          outStr = StringIO.StringIO()
          inStr.write( """ab
          inStr.pos = 0
          a.main( input = inStr, output = outStr )
         if __name__ == '__main__':
          unittest.main()
         import string
          def __init__ ( self ):
          return string.join( lst, '' ).replace( ' ', '' )
          def printAnagram( self, output = sys.stdout ):
          for list in self.dictionary.values():
          for word in list:
          def main( self, input = sys.stdin, output = sys.stdout ):
          for line in input.readlines():
  • ClassifyByAnagram/재동 . . . . 5 matches
          self.anagram.inputWord('abc')
          self.anagram.inputWord('cba')
          self.assertEquals(expect, self.anagram.getSortWordString())
          def testIsWordListInAnagramList(self):
          self.anagram.inputWord('cba')
          self.assertEquals(expect1, self.anagram.isWordListInAnagramList())
          self.anagram.inputWord('zzz')
          self.assertEquals(expect2, self.anagram.isWordListInAnagramList())
          self.anagram.inputWord('cba')
          self.anagram.inputWord('cba')
          self.anagram.inputWord('bac')
          self.anagram.inputWord('abab')
          def __init__(self):
          def inputWord(self, word):
          self.wordString = word
          for i in range(len(self.wordString)):
          self.wordList.append(self.wordString[i])
          def isWordListInAnagramList(self):
          for i in range(len(self.anagramList)):
          if self.anagramList[i][0] == self.getSortWordString():
  • DataStructure/Tree . . . . 5 matches
          * Sibling : 형제(같은 레벨의) 노드
         = Binary Tree =
         = Binray Tree 의 표현 =
          * Linked List
         = Binary Tree Traversal =
          * InOrder : Left Child -> Root -> Right Child : 우리에게 가장 익숙한 방식
         InOrder(a)
          InOrder(a->left)
          InOrder(a->right)
         = Binary Search Trees (우리말로 이진 탐색 트리) =
          * Binray Search Tree 니까 당연히 Binary Tree 여야 한다.
          * Keys in Left Subtree < Keys of Node
          * Keys in Right Subtree > Keys of Node(고로 순서대로 정렬되어 있어야 한단 말입니다.)
          * if x = Root's Key then 찾았으니까 알고리즘 끝
         = Insert x =
         void init(Node** node,char* ch) // 초기화
         void PrintandDelete(Node* root) // 맨 왼쪽부터 순회(Preorder인가?)
          Print( root->pLeft );
          Print( root->pRight );
         int Add(Node** root,char* ch)
  • DirectDraw/APIBasisSource . . . . 5 matches
         #ifndef WIN32_LEAN_AND_MEAN
         #define WIN32_LEAN_AND_MEAN
         #include <windows.h>
         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
         int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
          wc.hInstance = hInstance;
          hWnd = CreateWindowEx( 0, "DXTEST", "DXTEST",
          WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
          CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL );
          ShowWindow(hWnd, nCmdShow);
          UpdateWindow(hWnd);
          return (int)msg.wParam;
          // Translate and dispatch the message
          return (int)msg.wParam;
         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
          return DefWindowProc(hWnd, msg, wParam, lParam);
  • DoItAgainToLearn . . . . 5 matches
         "We do it again -- to do it, to do it well, and to do it better." --JuNe (play on Whitehead's quote)
         제가 개인적으로 존경하는 전산학자 Robert W. Floyd는 1978년도 튜링상 강연 ''[http://portal.acm.org/ft_gateway.cfm?id=359140&type=pdf&coll=GUIDE&dl=GUIDE&CFID=35891778&CFTOKEN=41807314 The Paradigms of Programming]''(일독을 초강력 추천)에서 다음과 같은 말을 합니다. --김창준
          Seminar:TheParadigmsOfProgramming DeadLink? - 저는 잘나오는데요. 네임서버 설정이 잘못된건 아니신지.. - [아무개]
          Seminar에 로그인을 안 해서 여기다 DeadLink 딱지를 달았습니다. 안에 내용물도 받아지시나요? --[Leonardong]
         In my own experience of designing difficult algorithms, I find a certain technique most helpfult in expanding my own capabilities. After solving a challenging problem, I solve it again from scratch, retracing only the ''insight'' of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that ''would'' have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value. ...... The rules of Fortran can be learned within a few hours; the associated paradigms take much longer, both to learn and to unlearn. --Robert W. Floyd
         Even fairly good students, when they have obtained the solution of the problem and written down neatly the argument, shut their books and look for something else. Doing so, they miss an important and instructive phase of the work. ... A good teacher should understand and impress on his students the view that no problem whatever is completely exhausted. --George Polya
         저는 ACM의 ICPC 문제 중에 어떤 놈을 이제까지 열 번도 넘게 풀었습니다. 대부분 PairProgramming이나 세미나에서 프로그래밍 시연을 했던 것인데, 제 세미나에 여러번 참석한 친구가 물었습니다. "신기해요. 창준씨는 그 문제를 풀 때마다 다른 프로그램을 짜는 것 같아요. 혹시 준비를 안해와서 그냥 내키는 대로 하는 건 아니죠? :)" 저는 카오스 시스템과 비슷하게 초기치 민감도가 프로그래밍에도 작용하는 것 같다는 대답을 해줬습니다. 저 스스로 다른 해법을 시도하고 싶은 마음이 있으면 그렇게 출발이 조금 다르고, 또 거기서 나오는 진행 방향도 다르게 됩니다. 그런데 중요한 것은 이렇게 같은 문제를 매번 다르게 푸는 데에서 배우는 것이 엄청나게 많다는 점입니다. 저는 매번, 전보다 개선할 것을 찾아 내게 되고, 또 새로운 것을 배웁니다. 마치 마르지 않는 샘물처럼 계속 생각할 거리를 준다는 점이 참 놀랍습니다. --JuNe
         Seminar:SoftwareDevelopmentMagazine 에서 OOP의 대가 Uncle Bob은 PP와 TDD, 리팩토링에 대한 기사를 연재하고 있다. [http://www.sdmagazine.com/documents/s=7578/sdm0210j/0210j.htm A Test of Patience]라는 기사에서는 몇 시간, 혹은 몇 일 걸려 작성한 코드를 즐겁게 던져버리고 새로 작성할 수도 있다는 DoItAgainToLearn(혹은 {{{~cpp DoItAgainToImprove}}})의 가르침을 전한다.
  • EightQueenProblem/용쟁호투 . . . . 5 matches
         $PBExportHeader$eightqueenproblem.sra
         global dynamicstagingarea sqlsa
         string appname = "eightqueenproblem"
         Integer il_attack [8,8] , il_limit = 1, il_queen_count = 1
         String is_solution[8]
         public subroutine wf_reset_maze ()
         public function boolean wf_chack_attack (integer ai_x, integer ai_y)
         public function boolean wf_create_queen ();Integer li_x,li_y
          IF il_limit >= 30000 THEN
          If wf_chack_attack(li_x, li_y) Then CONTINUE;
          is_solution[il_queen_count] = 'Queen No : ' + String(il_queen_count) + ' / X : ' + String(li_x) + ' / Y : ' + String(li_y)
         public subroutine wf_reset_maze ();Integer li_x, li_y
         String ls_temp[8]
         end subroutine
         public function boolean wf_chack_attack (integer ai_x, integer ai_y);//32767
         Integer li_x, li_y
         IF il_attack[ai_x,ai_y] = 1 THEN RETURN TRUE
          il_attack[li_x,ai_y] = 1 //X Line 공격루트 셋팅
          il_attack[ai_x,li_y] = 1 //Y Line 공격루트 셋팅
         IF li_x > li_y THEN
  • ErdosNumbers/문보창 . . . . 5 matches
         //#include <fstream>
         #include <iostream>
         #include <cstdlib>
         using namespace std;
         //fstream fin("input.txt");
         const int MAX_STR = 20;
         const int MAX_ERNUM = 100;
         int ernum;
         void init();
         void input_thesis(int num_thesis);
         void input_writer(int num_writer);
         bool slice_str(char * thesis);
         bool make_map(char name[][MAX_STR], int num);
         void insert_list(char * name);
         int serch_erdos_num(char * name);
         int main()
          int num_case, num_thesis, num_writer;
          cin >> num_case;
          for (int i = 0; i < num_case; i++)
          init();
  • FeedBack . . . . 5 matches
         '''The American Heritage(r) Dictionary of the English Language, Fourth Edition'''[[BR]]
          a. The return of a portion of the output of a process or system to the input, especially when used to maintain performance or to control a system or process.
          * The portion of the output so returned.
          * Sound created when a transducer such as a microphone or electric guitar picks up sound from a speaker connected to an amplifier and regenerates it back through the amplifier.
          *. The return of information about the result of a process or activity; an evaluative response: asked the students for feedback on the new curriculum.
          *. The process by which a system, often biological or ecological, is modulated, controlled, or changed by the product, output, or response it produces.
  • Fmt . . . . 5 matches
         [http://online-judge.uva.es/p/v8/848.html 원문보기]
         === Sample Input ===
         The unix fmt program reads lines of text, combining
         and breaking lines so as to create an
         output file with lines as close to without exceeding
         72 characters long as possible. The rules for combining and breaking
         lines are as follows.
          1. A new line may be started anywhere there is a space in the input.
         If a new line is started, there will be no trailing blanks at the
         end of the previous line or at the beginning of the new line.
          2. A line break in the input may be eliminated in the output, provided
         it is not followed by a space or another line break. If a line
         break is eliminated, it is replaced by a space.
         The unix fmt program reads lines of text, combining and breaking lines
         so as to create an output file with lines as close to without exceeding
         72 characters long as possible. The rules for combining and breaking
         lines are as follows.
          1. A new line may be started anywhere there is a space in the input.
         If a new line is started, there will be no trailing blanks at the end of
         the previous line or at the beginning of the new line.
  • Graphical Editor/Celfin . . . . 5 matches
         #include <iostream>
         #include <queue>
         using namespace std;
         char instruction;
         int x1, x2, y1, y2;
         int size_x, size_y;
         int i, j;
         void brush(int x_1, int y_1, int x_2, int y_2, char b_color)
          int tempInt;
          tempInt = x_1;
          x_2 = tempInt;
          tempInt = y_1;
          y_2 = tempInt;
         void printing()
         void regionBrush(int x, int y, char b_color)
          const int PLUS_X[8] = {+0, +1, +1, +1, +0, -1, -1, -1};
          const int PLUS_Y[8] = {+1, +1, +0, -1, -1, -1, +0, 1};
          queue<int> pointList_X;
          queue<int> pointList_Y;
          pointList_X.push(x);
  • HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/변준원 . . . . 5 matches
         속성 상속(inheritance)
         객체 지향 프로그램의 중요한 특징으로 하나의 함수 이름이나 심볼이 여러 목적으로 사용될 수 있는 다형성(Polymorphism)을 들 수 있다. 객체 지향에서의 다형성이란, 복수의 클래스가 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 말한다. 즉, 별개로 정의된 클래스들이 ㅌ은 이름의 함수를 별도로 가지고 있어 하나의 메세지에 대해 각기 다른 방법으로 그 메세지를 수행할 수 있는 것을 의미한다. 예를 들어, 여러 가지 화일(file)들을 프린트 하는 함수를 생각해 보자. 화일에는 간단한 텍스트 화일(text file), 문서 편집기로 만든 포멧 화일(format file), 그래픽을 포함하는 화일(file with graphics) 등 여러 가지가 있다. 이들 각각의 화일들은 프린트 하는 방법이 모두 다르다, 객체 지향에서는 아래처럼 각 종류의 화일을 별도의 클래스로 정의하고, 각각의 화일 종류별로 Print라는 함수를 화일의 형태에 맞게 구현한다.
         Text file -> Print();
         Formatted file -> Print();
         File with graphics -> Print();
         이렇게 생성된 화일 객체들은 모두 Print라는 메세지를 이해하며, 각 화일의 종류에 알맞게 프린트 할 수 있다. 이렇듯 다형성은 같은 이름의 함수를 여러 클래스가 각 클래스에 알맞게 달리 정의하고 같은 이름의 메세지에 응답할 수 있게 해준다.
         정보 은폐 (infomation hiding)
         객체와 객체 사이의 정보 교환은 외부에 공개하고자 하는 일련의 정보를 public interface로 정의해 외부에 객체들이 이 Interface를 통해서 그 객체와 정보를 교환하도록 한다. 즉, 한 객체의 Public Interface를 그 객체가 "무슨 일을 할 수 있다. 혹은 이 정보는 공개할 수 있다."라고 외부에 선언하는 것이다.
         이 Public Interface는 언어에 따라 표현 양식이 다른데, C++에서는 "public"이란 특별 구문을 두어 "public"란에 들어간 항목들만 외부에 공개된다. Effel이란 언어에서는 "export"라는 란에 지정된 항목들만 외부에 공개된다. 앞에서 정의한 POINT라는 객체 정의를 보면 move와 setcolor의 함수들이 외부에서 관찰될 수 있는 public interface임을 알 수 있다. 여기서 한가지 유의할 점은 move와 setcolor라는 함수들이 외부에 보여져 불리워질 수 있는 함수들이라는 것이며 각 함수가 가지고 있는 코드나 알고리즘까지 보여지는 것은 아니라는 것이다. 한 함수가 외부에 보여지는 부분을 signature라고 하며 하나의 signature는 함수의 이름, 입력 매개변수(input parameter)와 출력 매개변수(output parameter)로 구성되어 있다.
         위에서 살펴볼 캡슐화와 정보 은폐의 이점은 우선 객체 내부의 은폐된 데이타 구조가 변하더라도 주변 객체들에게 영향을 주지 않는다는 것이다. 예로서, 어떤 변수의 구조를 배열(array)구조에서 리스트(list) 구조로 바꾸더라도 프로그램의 다른 부분에 전혀 영향을 미치지 않는다. 또한 어떤 함수에 사용된 알고리즘을 바꾸더라도 signature만 바꾸지 않으면 외부 객체들에게 영향을 주지 않는다. 예를 들어, sorting 함수의 경우 처음 사용된 sequence sorting 알고리즘에서 quick sorting 알고리즘으로 바뀔때 외부에 어떤 영향도 주지 않는다. 이러한 장점을 유지보수 용이성(maintainability) 혹은 확장성(extendability)이라 한다.
         클래스 중에는 인스턴스(instance)를 만들어 낼 목적이 아니라 subclass들의 공통된 특성을 추출하여 묘사하기 위한 클래스가 있는데, 이를 추상 클래스(Abstract class, Virtual class)라 한다. 변수들을 정의하고 함수중 일부는 완전히 구현하지 않고, Signature만을 정의한 것들이 있다. 이들을 추상 함수(Abstract function)라 부르며, 이들은 후에 subclass를 정의할 때에 그 클래스의 목적에 맞게 완전히 구현된다. 이 때 추상 클래스의 한 subclass가 상속받은 모든 추상 함수들을 완전히 구현했을 때, 이를 완전 클래스(Concrete class)라고 부른다. 이 완전 클래스는 인스턴스를 만들어 낼 수 있다.
         추상 클래스의 예로서 프린터 소프트웨어를 생각해 보자. 우선 모든 종류의 프린터들이 공통으로 가지는 특성을 정의한 추상 클래스 "Printer"가 있다고 한다면, 여기에는 프린터의 상태를 나타내는 변수, 프린터의 속도 등의 변수가 있으며 함수로는 프린팅을 수행하는 Print 등을 생각할 수 있다. 그러나 프린터마다(Dot matrix printer, Laser printer, Ink jet printer) 프린팅 하는 방법이 다르므로 이 추상 클래스 안에서는 Print라는 함수를 완전히 구현할 수 없다. 다만, 여기에는 Print 추상 함수의 Signature만 가지고 있으며, 실제의 구현은 여러 subclass에서 각 프린터 종류에 알맞게 하면 된다.
         "Printer"라는 클래스는 추상 클래스로서 실존의 어떤 프린터 기능을 가지고 있지 않고, dot matrix printer나 laser printer 등의 완전 클래스들 간의 공통된 특성만 지정하고 있으므로, 그 인스턴스를 만드는 것은 무의미하다. 추상 클래스는 점진적 개발 방법(Incremental Development)에 유용하게 사용될 수 있으며, 공통 속성(attribute)의 추출 및 정의에 유용하므로 문제를 모델링하는데 편리함을 더해준다.
  • HowManyPiecesOfLand?/하기웅 . . . . 5 matches
         #include <iostream>
         #include "BigInteger.h"
         using BigMath::BigInteger;
         BigInteger input;
         int testcase;
         BigInteger Piece_of_Land(BigInteger n)
         int main()
          cin >> testcase;
          cin >> input;
          cout << Piece_of_Land(input) << endl;
  • IndexingScheme . . . . 5 matches
         An IndexingScheme is a way to navigate a wiki (see also MeatBall:IndexingScheme).
         MoinMoin supports these IndexingScheme''''''s:
          * TitleIndex
          * WordIndex
          * FindPage
          * Like''''''Pages (at the bottom of each page)
         Additionally, there are the
  • JavaScript/2011년스터디/CanvasPaint . . . . 5 matches
          ctx.beginPath();
          if(drawmethod==1) drawLines();
          else if(drawmethod==2) drawDotPoint();
          element=document.getElementById('drawLine');
          dotx=undefined;
          doty=undefined;
          ctx.clearRect(0,0,window.innerWidth-15, window.innerHeight-50);
          function drawDotPoint()
          function drawLines()
          ctx.beginPath();
          ctx.lineWidth=3;
          ctx.lineTo(event.x-7, event.y-7);
          <canvas id="drawLine" width="300" height="300" onmousedown="hold();"
          <select name="colors"onclick="selectColor(this.selectedIndex)">
          <button type="button" onclick="drawMethod(1)"> LINE </button>
          element=document.getElementById("drawLine");
          element.setAttribute("width", window.innerWidth-15);
          element.setAttribute("height", window.innerHeight-50);
          context.strokeRect(0, 0, window.innerWidth-15, window.innerHeight-50);
         if(window.addEventListener){
  • JavaStudy2003/두번째과제/입출력예제 . . . . 5 matches
         '''Java의 Swing 중 JOptionPane 으로 입력과 출력을 받는 예제.'''
         import javax.swing.JOptionPane;
         public class InputOutputExample {
          private String input = "";
          private String output = "";
          public InputOutputExample() { // Constructor
          // input string
          input = inputDialogbox("Enter the first word : ");
          output += input; // add text to String instance;
          input = inputDialogbox("Enter the second word : ");
          output += input; // add text to String instance;
          public static void main(String[] args) {
          InputOutputExample example = new InputOutputExample();
          public String inputDialogbox(String text) {
          // Shows a question-message dialog requesting
          // input from the user parented to parentComponent.
          return JOptionPane.showInputDialog(null, text);
          public void outputDialogbox(String message) {
          // Brings up an information-message dialog titled "Message".
  • JavaStudyInVacation/진행상황 . . . . 5 matches
          * awt 와 swing 의 차이를 알아내기.
         ||영동||["AwtVSSwing/영동"]||
          * http://www.jini-club.net/eclipse/dw_EclipsePlatform.html 한글
          * http://gnome.or.kr/moin.cgi/JavaSWT 한글(간단 소개)
          * http://www-106.ibm.com/developerworks/library/j-nativegui/index.html
          See Also ["Java/NestingClass"] 정진균 군이 수고해 주셨습니다. 그냥 이렇구나 하고 읽어 보세요. --NeoCoin
          이런것들은 다 같이 찾아보고, 다 같이 토론하고, 다들 이해했으면 하나로 정리해서 써두 될텐데요^^ 위에 AWT와 SWING의 차이도.. 그리고 아래 네트워크를 사용하는 방법도 마찬가지구요~ 이렇게 각자 쓸것까지야... --["상규"]
         ||상욱||["ConvertAppIntoApplet/상욱"]||
         ||영동||["ConvertAppIntoApplet/영동"]||
         ||진영||["ConvertAppIntoApplet/진영"]||
          '''''이거부터는 각자 하지 말고 같이 하라고 했는데요....''''' ["JavaStudyInVacation/과제"]를 잘 읽고 하세요. 아무래도 내일 다 끝내는건 무리가 있는듯 하군요. 다음주에는 제가 계속 학교에 있습니다. 다음주에도 계속하겠습니다. 이번주처럼 계속 참여해주세요. --["상규"]
         ["JavaStudyInVacation"]
  • ListCtrl . . . . 5 matches
         == Mouse Click 후 index 받아 오기 ==
         int ListIndex;
         CPoint point ((int)LOWORD(dwPos), (int)HIWORD(dwPos));
         CPoint Index = point;
         m_ctrlZoneList.ScreenToClient(&Index);
         ListIndex = m_ctrlZoneList.HitTest(Index);
         == Mouse Click 후 Item의 String 받아 오기 ==
          int index = m_ctrlBlockList.GetNextSelectedItem(pos);
          m_ctrlBlockList.GetItemText(index, 0, buf, 64);
  • MoinMoinWikis . . . . 5 matches
         Wikis that use MoinMoin:
          * [wiki:PythonInfo:Python20Info Python 2.0 Info Area]
          * [http://www.bioinformatics.org/piperwiki/moin.cgi Wiki for the Piper project]
          * [http://pgdn.org/wiki CultureWiki] (online again, but still dead)
          * [http://compsoc.dur.ac.uk/~tsp/cgi-bin/triki.cgi TrikiWiki] (private wiki for the Transformers holiday - uses a mildly hacked MoinMoin)
          * [http://www.keitee.net/ Keiteedot] (Slash like wiki in Japanese)
          * [http://www.gembook.org/moin/ WikiArea] (Japanese)
          * [http://www.thinkware.se/cgi-bin/thinki.cgi/ Thinki]
          * [http://www.cdegroot.com/cgi-bin/photowiki/ Photo Wiki]
          * [http://www.cdegroot.com/cgi-bin/moin/ cdegroot.com's MoinMoin]
          * [http://www.linuxvideo.org/docs/wiki/ LiViD Wiki]
          * [http://lightingwiki.com/FrontPage The Lighting Wiki]
         For more wikis, see the InterWiki list.
  • MultiplyingByRotation/문보창 . . . . 5 matches
         // no550 - Multiplying by Rotation
         #include <iostream>
         using namespace std;
         int main()
          int base, lsd, factor; // 진수, 마지막자리수, 곱셈수
          int carryIn, carryOut;
          int temp;
          int nDigit;
          while (cin >> base >> lsd >> factor)
          continue;
          carryIn = (temp * factor) / base;
          carryOut = (temp * factor + carryIn) / base;
          temp = (temp * factor + carryIn) % base;
          carryIn = carryOut;
         [MultiplyingByRotation] [문보창]
  • MySQL . . . . 5 matches
         jdbc:mysql://localhost/database?user=user&password=xxx&useUnicode=true&characterEncoding=KSC5601
          * 중지 : myadmin shutdown -p
         insert user values('localhost', 'jeppy', password('암호'), 'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
         insert user values('%', 'jeppy', password('암호'), 'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
          * ZeroPage 회원 ["상민"](99,["neocoin"])에게 해 주십시오.
         6 rows in set (0.00 sec)
         1 row in set (0.00 sec)
         Client characterset: latin1
         Server characterset: latin1
          앗 탄로 났다. 드뎌 영문으로 설치한 부작용이 다들 영어 써요 ~ 와~~;; 오호 통재라 모든것은 시험끝나고 이루어질것이니.. --["neocoin"]
         MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --["상규"]
         2 rows in set (0.00 sec)
         mysql> select * from addressbook ORDER BY BINARY name;
         6 rows in set (0.00 sec)
         [http://network.hanbitbook.co.kr/view_news.htm?serial=131 MySQL과 Transaction] 테이블 생성시 InnoDB 나 BSDDB 를 사용하면 Transaction 을 이용할 수 있다. (InnoDB 추천)
         http://navyism.com/main/memo.php?bd=lib&no=24
         [MySQL/PasswordFunctionInPython]
         [MySQL/PasswordFunctionInJava]
         위의 PHP 버전은 어떻게 만들었을까? 바로.. MySQL 코드를 보고 만들었다고 한다.- UseTheSourceLuke --[1002]
  • NSISIde . . . . 5 matches
         == Opening Statement ==
         Solo Programming 으로 진행. XP 공부한거 소폭 적용해봄.
         == Engineering Task ==
         한 Iteration 을 2시간으로 잡음. 1 Task Point는 Ideal Hour(?)로 1시간에 할 수 있는 양 정도로 계산. (아.. 여전히 이거 계산법이 모호하다. 좀 더 제대로 공부해야겠다.)
         || Rich Edit Control 의 이용. 편집. 자료구조와 sink. || 0.5 ||
         || CInnerProcess Class 의 이용. 약간 수정. makensis 이용. || 0.5 ||
         || Output Windows 의 생성 || 0.5 ||
         0.4 + 0.4 + 0.5 + 0.5 + 0.5 + 0.5 + 0.7 = 3.5 (전체 3.5 Task Point) [[BR]]
         Planning & 중간 휴식시간 포함 1시간 추가 = 8 시간
          * CInnerProcess Class 0.5
          * Output Window 0.5 - 1 * 2 = 2
          * velocity : 1.3 task point
          CInnerProcess Class 이용, Nsis 연결하기 - 0.5
          Output Window 0.5 - 1 * 2 = 2
          -> Singleton 으로 있어야 할 녀석임.
          -> AppClass 에 있으면 자동으로 Singleton 이 되겠군. ^-^;
          -> 어차피 Execute Process 는 Blocking Call 임.
          * velocity : 1.7 task point
          * average : 1.5 task point
          * velocity : 0.7 task point.
  • ParametricPolymorphism . . . . 5 matches
         getCar(:String):Car 라는 메소드를 생각해보자.
         public Car getCar(String clientType)
         따라서 SportCar, LuxuryCar의 인스턴스(instance)가 Car객체 변수인 sportCar, luxuryCar에 대입이 가능하다.
         sportCar.startTurboEngine();
         sportCar.startTurboEngine();
         sportCar.startTurboEngine();
         Pair<Integer> p;
         p = new Pair<Integer>(new Integer(0), new Integer(1));
         Integer x = p.getFirstObject(p);
         [AcceleratedC++/Chapter13], [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200505230005 임백준의 소프트웨어 산책/임배준 지음], WikiPedia:Christopher_Strachey
  • PragmaticVersionControlWithCVS/Getting Started . . . . 5 matches
         = Getting Started =
         == Installing CVS ==
         CVS서버 설치는 알아서 잘해라. -_-; 리눅스에서는 패키지로 설치하면 되고, 윈도우에서는 알아서 받아서 설치하면 된다. 이미 서버가 있으면 더 좋다. 내 경우에는 데비안 리눅스를 사용하는 관계로 apt-get install cvs로 간단히 설치를 끝냈다.
         == Creating a Repository ==
         Unix: cvs -d ~/sandbox init // 나의 경우에는 /home/CVSHOME 로 지정하였다.
         Wind: cvs -d d:sandbox init
         CVS클라이언트는 현재 우리가 쓰는 커맨드 형태의 클라이언트도 있지만, GUI형태의 TortoiseCVS, WinCVS등도 있다. (sourceforge.net에서 확인) 또한 IDE 자체가 CVS 클라이언트의 기능을 하는 것들도 있다. (ex. eclipse, dev-cpp)
         == Creating a Simple Project ==
         tmpdir#cvs -d /home/CVSHOME/ import -m " " sesame sesame initial
         마지막 2개의 파라메터(sesame initial) tag이다.
         == Starting to Work With a Project ==
         cvs checkout: Updating sesame
         == Making Changes ==
          Working revision: 1.1.1.1 Tue Aug 2 05:50:14 2005
         Index: color.txt
         retrieving revision 1.1.1.1
         Index: color.txt
         retrieving revision 1.1.1.1
         == Updating the Repository ==
         cvs commit: Examining .
  • ProgrammingLanguageClass/Report2002_2 . . . . 5 matches
         = Principles of Programming Languages Spring, 2002 Programming Assignment #2 =
         Design and implement simple test programs in Visual C++(V6.0), Visual Basic(V6.0) and Java(JDK 1.4).
          1. To find out the maximum length of a variable name
          1. To assess the type-compatibility rule adopted by the Compilers;
          1. To evaluate the security of pointers in the Compilers;
          1. To check the evaluation order of operands in the Compilers by raising the functional side-effects if possible;
          1. To identify a situation in which the “add” operator would not be associative;
          1. To determine the largest and smallest positive floating point number in Intel Pentium processor.
          * Intel Pentium processor 상에서 양수인 부동 소수점의 가장 큰값과 작은 값 결정
         The output should be a sequence of test programs with the results generated from them. Your grade will be highly dependent on the quality of your test programs.
         == Hand In ==
         As usual, you shall submit a floppy diskette with a listing of your program and a set of test data of your own choice, and the output from running your program on your test data set.
         Be sure to design carefully your test data set to exercise your program completely. You are also recommended in your documentation to include the rationale behind your test programs.
         In order words, explain why you design them in such a way and what you intend to demonstrate
         ["ProgrammingLanguageClass"]
  • ProjectPrometheus/Journey . . . . 5 matches
         ["ProjectPrometheus"] 작업 수기. ["ThreeFs"] 에 따라. 그날의 한일과 느낀점, 교훈 등을 생각해보는 시간가지기. 순간을 채집하고 민감할 수 있도록.
          * 윈도우에서 작업한 ["Java"] 화일이 의외로 한방에 ["Ant"] 로 빌드하고, ZeroPage 의 Resin 서버에서 동작하는 것을 보며, 다시금 자바의 위력이 실감난다.
          * Mypage 에서의 Best Point 순위.
         오늘은 일의 진행이 정말 일사천리로 이루어졌다. 모이고 처음 일을 시작할때 상민이와 이전에 했던 일들과 오늘 해야 할일에 대해 간단하게 정리를 한 점이 주효한것 같다. 간단한 일이긴 하지만, 그날의 할 일에 대해 미리 머릿속에 그림을 그려둔다는 점에서 5분 Stand Up Meeting 은 의외로 효과를 주는것 같다. 그리고 Pair 를 하는중 디버깅이나 기타 일을 할때 미리 자신이 어떠한 일을 하려고 하는지 짧으면서도 자주 대화가 오고 갔던 점, 프로그래밍때 자주 체인지 한것도 오늘 일이 잘 진행되는데 도움이 컸다고 생각. --["1002"]
          * 한동안 PairProgramming 할때 주로 관찰자 입장에 있어서인지. (이상하게도. 창준이형이랑 할때나 상민이랑 할때나. 그나마 저번 르네상스 클럽때는 아무도 주도적으로 안잡아서 그냥 내가 잡긴 했지만, 다른 사람들이 적극적으로 나서지 않을때엔 웬지 그 사람들과 같이 해야 한다는 강박관념이 있어서.)
         그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
         1002 개인적으로 진행. 뭐 진행이라기 보다는, 오랜만에 Solo Programming 을 해봤다. 장점으로는 느긋하게 소스를 리뷰하고 대처할 시간을 천천히 생각해볼 수 있던점. (보통은 상민이가 이해를 빨리 하기 때문에 먼저 키보드를 잡는다.) 단점으로는 해결책에 대한 Feedback 을 구할 곳이 없다는 점이 있다. (평소 물어보고 둘이 괜찮겠다 했을때 구현을 하면 되었는데, 이경우에는 책임 소재랄까.. 웬지 혼자서 생각한 것은 의외의 틀린 답이 있을 것 같은 불안감이 생긴다. 테스트 중독증 이후 이젠 페어 중독증이려나..)
         다행히 모듈화가 잘 되어있었고, Test 들이 있었기에 ["neocoin"] 과 ["1002"] 는 주로 깨진 테스트들을 바로잡기로 했다. 일단 도서관들의 HTML 을 얻고, Local HTML 문서에 대해 데이터들을 잘 추출해내는지에 대한 테스트를 먼저 복구했다.
         Object-RDB Mapping 에 대해서는 ["PatternsOfEnterpriseApplicationArchitecture"] 에 나온 방법들을 읽어보고 그중 Data Mapper 의 개념을 적용해보는중. Object 와 DB Layer 가 분리되는 느낌은 좋긴 한데, 처음 해보는것이여서 그런지 상당히 복잡하게 느껴졌다. 일단 처음엔 Data Gateway 정도의 가벼운 개념으로 접근한뒤, Data Mapper 로 꺼내가는게 나았을까 하는 생각.
          * Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
          * AcceptanceTest login , view page 테스트 추가
          * MPP 에 login, SimpleSearch 구성과 결과 출력
          * Server Refactoring
         서버쪽 클래스들에 대해서 Refactoring 을 시도 데이터클래스이면서 그 용도가 조금씩 달랐던 클래스들을 하나로 묶었다. (일단 모여해쳐 시도용으로) 그러면서 안쓰는 클래스들을 조금씩 지워나갔다. 패키지들중 Test 패키지와 메인 소스 패키지, 임시 코드 패키지들에 대해서 화일들을 옮기고 정리했다. 아직 완벽하게 정리된것 같진 않지만, 개인적으로는 이전에 비해 만족스러웠다. (이제 Target은 Resin 쪽과 임시소스들 디렉토리.)
          * Code Review 로서 Refactoring 이 이용된다고 했다시피, Refactoring을 해 나가면서 전체 프로그램의 그림이 좀 더 이해가 갔다. 한동안 해당 프로그램에 대해서 플밍 리듬을 놓쳤을때 Refactoring 을 시도하는것도 좋은 전략이라 생각.
          * Task 를 작성할때 Refactoring 을 명시적으로 써 놔야 하겠다. Acceptance Test 처럼. 써놓지 않으니까 잊어먹고 자주 안해준 것 같다. 그리고 생각보다 시간이 걸리는 만큼. (이건 Refactoring 을 플밍 중에 자주 해주지 않아서인것 같다. 2시간정도 걸렸으니)
          * DB Schema 궁리 & Recommendation System 을 DB 버전으로 Integration 시도
          * Pair 중간에 ["1002"] 는 목소리가 커질때가 있다. 하나는, 내가 놓치고 있을 경우에 대해 다른 사람이 이야기를 제대로 안해줬다고 생각되는 경우. 뭐 보통은 ["1002"]의 잘못을 다른 사람에게 떠넘기기 위한 방편인 경우가 많다 -_-; (찔린다; 나도 JuNe 형이랑 Pair 할때 무방비상태인 경우가 많아서;) 뭐, 같이 무방비였다가 못느끼고 넘어간 경우라면 아하~ 하면서 플밍하겠지만, 하나를 고치고 나서, 다른 사람이 당연한 듯이 좋은 방법으로 해결해낼때엔. ("왜 아까는 이야기안해?" "당연한거잖나."). 일종의 경쟁심리이려나. 에고 를 잊어야 하는게 PairProgramming 이지만, 사람 마음이 그렇기엔 또 다른것 같다. 코드 기여도에 대해서 보이지 않는 경쟁이 붙는다고 할까나.
          * MockObjects 를 이용, Database 에 대해서 MockObjects Test 와 Real DB Test 를 같이 해 나가보았다. DB - Recommendation System 연결을 위해서는 RS 에서의 object 들과 DB 와의 Mapping 이 필요하다고 판단, DB Schema 를 같이 궁리한 뒤, Test 를 작성하였다. 이때 이전 기억을 떠올리면서 MockObjects Test 를 상속받아서 Real DB Test 를 작성하는 식으로 접근해봤는데 좋은 방법이라 생각.
          * Martin Fowler 의 PatternsOfEnterpriseApplicationArchitecture 를 읽어보는중. 우리 시스템의 경우 DataMapper 의 개념과 Gateway 의 개념을 적용해볼 수 있을 것 같다. 전자는 Data Object 를 얻어내는데에 대해 일종의 MediatorPattern 을 적용함. DB 부분과 소켓으로부터 데이터를 얻어올 때 이용할 수 있을 것 같다. 후자의 경우는 일반적으로 Object - RDB Data Mapping (또는 다른 OO 개념이 아닌 데이터들) 인데, RowDataGateway, TableDataGateway 의 경우를 이용할 수 있을것 같다.
  • ProjectZephyrus/ClientJourney . . . . 5 matches
          * 일이 거의 막마지에 다다른다. 12시 이후 본격적 작업. 이틀간의 스케줄에서 둘이 참여를 하지 않았으므로, 작업은 주로 코드 설명이 주가 될 수 밖에 없었다. Pair로 ["Refactoring"] 해나가며 설명하기에 내가 너무 많이 코드를 고쳤나. -_-; (나도 할말있는것이, 가장 중요사항중 하나인 패킷 핸들러 처리부분할때 다들빠지냐는것이다. -_-; 제일 얻을 것도 많은 부분일건데 쩝. 개인적으로 만들면서 흐뭇(^^;) 했던 부분이고;)
          * 이전에 wiki:NoSmok:InformationRadiator 를 붙일 수 있는 벽과 화이트보드가 그립다; 방학중엔 피시실 문짝에라도 붙여보던지 궁리를;
          * 이번 프로젝트의 목적은 Java Study + Team Project 경험이라고 보아야 할 것이다. 아쉽게도 처음에 공부할 것을 목적으로 이 팀을 제안한 사람들은 자신의 목적과 팀의 목적을 일치시키지 못했고, 이는 개인의 스케줄관리의 우선순위 정의 실패 (라고 생각한다. 팀 입장에선. 개인의 경우야 우선순위들이 다를테니 할말없지만, 그로 인한 손실에 대해서 아쉬워할정도라면 개인의 실패와도 연결을 시켜야겠지)로 이어졌다고 본다. (왜 초반 제안자들보다 후반 참여자들이 더 열심히 뛰었을까) 한편, 선배의 입장으로선 팀의 목적인 개개인의 실력향상부분을 간과하고 혼자서 너무 많이 진행했다는 점에선 또 개인의 목적과 팀의 목적의 불일치로서 이 또한 실패이다. 완성된 프로그램만이 중요한건 아닐것이다. (하지만, 나의 경우 Java Study 와 Team Project 경험 향상도 내 목적중 하나가 되므로, 내 기여도를 올리는 것은 나에게 이익이다. Team Project 경험을 위해 PairProgramming를 했고, 대화를 위한 모델링을 했으며, CVS에 commit 을 했고, 중간에 바쁜 사람들의 스케줄을 뺐다.) 암튼, 스스로 한 만큼 얻어간다. Good Pattern 이건 Anti Pattern 이건.
          * 암튼. 이렇게 해봤으니, 앞으로는 더 잘할수 있도록, 더욱더 잘할수 있도록. ["DoItAgainToLearn"] 했으면 한다. 앞으로 더 궁리해봐야 할 일들이겠지. -- 석천
          * 움.. 아무래도 난 말빨 글빨 다 딸리는거같다.. 위에글처럼 멋있게 쓰고싶은데, 그냥 내식대로 써야겠다.. 간만에 내가 또 형보다 일찍왔다. 이틀동안 빠진게 타격이 너무 컸나보다.. MainSource에 새로 추가된 파일도 꽤되고 기존파일도 업데이트된 내용이 많아서 이해가 아니라 읽어보는것만해도 엄청난 시간이 들었다.. --;; 정통부 회의겸 기짱턱땜에 일찍갔는데 아무래도 금요일로 완료가 된 모양이다.. 이번이 나로선 거의 처음 해본 프로젝트였는데, 내가 별로 한건없지만, 솔직히 뭔가 만든것보단 배운게 더 많은거같다.. 하긴 프로젝트를 해본다는거 자체가 배운다는거였으니깐.. 꼭 자바에 대해서 배운것보다도 Design이라던지 Architecture(맞나?) 같은것에 대해서도 배웠고.. 프로젝트란 이렇게 진행해야 하는거구나라는것도 느꼈다. 뭔가 많이 쓰고싶은데 머리속이 정리가 안된다.. 이럴때 정말~~ ㅠ.ㅠ 아우~ 나중에 더 써야겠다..
          * 중간 중간 테스트를 위해 서버쪽 소스를 다운받았다. 상민이가 준비를 철저하게 한 것이 확실히 느껴지는 건 빌드용/실행용 배치화일, 도큐먼트에 있다. 배치화일은 실행한번만 해주면 서버쪽 컴파일을 알아서 해주고 한번에 실행할 수 있다. (실행을 위한 Interface 메소드를 정의해놓은것이나 다름없군.) 어떤 소스에서든지 Javadoc 이 다 달려있다. (Coding Standard로 결정한 사항이긴 하지만, 개인적으로 코드의 Javadoc 이 많이 달려있는걸 싫어하긴 하지만; 코드 읽는데 방해되어서; 하지만 javadoc generator 로 document 만들고 나면 그 이야기가 달라지긴 하다.)
          * TDD 가 아니였다는 점은 추후 모듈간 Interface 를 결정할때 골치가 아파진다. 중간코드에 적용하기 뭐해서 궁여지책으로 Main 함수를 hard coding 한뒤 ["Refactoring"] 을 하는 스타일로 하긴 하지만, TDD 만큼 Interface가 깔끔하게 나오질 않는다고 생각. 차라리 조금씩이라도 UnitTest 코드를 붙이는게 나을것 같긴 하다. 하지만, 마감이 2일인 관계로. -_- 스펙 완료뒤 고려하던지, 아니면 처음부터 TDD를 염두해두고 하던지. 중요한건 모듈자체보다 모듈을 이용하는 Client 의 관점이다.
          ''어차피 창섭이가 주점이 아니라 하더라도 자네는 소켓을 공부해야 했을걸. -_-v (왜냐. 중간에 창섭이랑 너랑 Pair 할것이였으니까. 창섭이도 Swing 관련 공부를 해둬야 하긴 마찬가지) 참, 그리고 해당 코드대비 완성시간은 반드시 체크하도록. 참고로 1:1 Dialog 는 1시간 10분정도 이용했음. --석천''
          * PairProgramming 을 할때 가장 답답해지는 상황은 잘 이해 안가면서 넋놓고 있을때랑, 둘이 같이 있어도 Solo Programming 하느 사람 마냥 혼자서 문제를 끙끙거리며 풀려고 하는 모습이다. 꼭 문제를 스스로 삽질해서 풀어야만 자기실력이 향상되는것일까? 다른 사람에게 올바른 질문을 할 수 없는 사람은 혼자서 문제 푸는데에도 오래걸리게 된다고 생각한다. 상대방에게 질문을 하면서 자신이 모르는 것 자체를 구체화하고 (문제 자체가 모호한상태 자체가 문제다. 무엇이 문제인지, 자신이 모르는 것이 구체적으로 무엇인지 모르면서 어떻게 문제를 해결할까? 자신이 모르는게 버클리소켓 전체 사용과정인지 소켓 API의 인자들을 모르면서 네트웍 프로그래밍을 할 수 있을까. 그런사람들에게 '지금 모르겠는게 뭐지?' 라고 물으면 80-90%는 '다 몰라요' 이다. 모르겠는 부분에 대해서 하나하나 구체화시켜나가라. 구체화시킨 예로서 생각을 해봐도 좋을것이다. 시나리오를 만들어보면서, 그림을 그려보면서, 아니면 자기 자신이 그 시스템의 일부가 되어 보면서.) 다른 사람의 아이디어를 자신의 사고에 붙여나가면서 '더 좋은 방법' 을생각해낼 수는 없을까? 언제나 문제의 답을 내는 방법은 '이사람의 방식' 아니면 '저사람의 방식' 뿐일까.
          * PairProgramming 의 교대시간을 5분으로 해봤다. 한 사람이 5분동안 해당 부분을 플밍하다가 다 못짜면 다음사람이 다시 5분의 시간을 가지고 이어서 짜고 하며 교대로 프로그래밍을 이어나가는 (마치 릴레이경주와도 같다) 방법이다. 사람들에게 제안했을때 그 표정들이 심상치 않다;; 그래 너희들은 실험용 모르모트다;; 흐흐.
          * 5분간격으로 Pair Programming을 했다.. 진짜 Pair를 한 기분이 든다.. Test가 아닌 Real Client UI를 만들었는데, 하다보니 Test때 한번씩 다 해본거였다.. 그런데 위와 아래에 1002형이 쓴걸 보니 얼굴이 달아오른다.. --;; 아웅.. 3일전 일을 쓰려니 너무 힘들다.. 일기를 밀려서 쓴기분이다.. 상상해서 막 쓰고싶지만 내감정에 솔직해야겠다.. 그냥 생각나는것만 써야지.. ㅡ.ㅡ++ 확실히 5분간격으로 하니 속도가 배가된 기분이다.. 마약을 한상태에서 코딩을 하는 느낌이었다.. 암튼 혼자서 하면 언제끝날지 알수없고 같이 해도 그거보단 더 걸렸을듯한데, 1시간만에 Login관련 UI를 짰다는게 나로선 신기하다.. 근데 혼자서 나중에 한 Tree만들땐 제대로 못했다.. 아직 낯선듯하다. 나에게 지금 프로젝트는 기초공사가 안된상태에서 바로 1층을 올라가는 그런거같다.. 머리속을 짜내고있는데 생각이 안난다 그만 쓰련다.. ㅡㅡ;; - 영서
          처음에는 영서와 GUI Programming을 했다. Main Frame class 의 메뉴붙이고 리스너 연결하는 것부터 시작, 입력 다이얼로그를 노가다 코딩해서 만드는데 서로 교대해서 1시간이 걸렸다. 코딩 속도도 저번에 비해 더욱 빨랐고, 대화할때도 그 질문이 간단했다. (5분간격이니 아무리 플밍이 익숙한 사람이 진행해도 그 진행양이 많지가 않다. 그리고 자신이 그 사람의 미완성 코드를 완성해야 하기에 모르면 바로 질문을 하게 된다.)
         (그 이후 창섭이가 와서 영서에게 JTree관련 Solo Programming 을 시켰는데, 말이 안되는 프로그래밍을 했다. -_-; 아직 영서가 Swing 에 익숙하지 않아서 그런데, 앞의 프로그램은 어떻게 만들어졌을까 의문이 들 정도였다; 아마 5분 간격 플밍시에는 서로 앞 사람 소스작성을 한 것을 기준으로 붙여나가는 방식이기에 그 흐름을 잡고 프로그래밍을 해서 Pair 가 성립이 가능했던것 같다는 생각도 해본다. 이는 처음 프로그래밍을 하는 사람과의 PairProgramming 시 궁리해봐야 할 사항인듯)
         다음번에 창섭이와 Socket Programming 을 같은 방법으로 했는데, 앞에서와 같은 효과가 나오지 않았다. 중간에 왜그럴까 생각해봤더니, 아까 GUI Programming 을 하기 전에 영서와 UI Diagram 을 그렸었다. 그러므로, 전체적으로 어디까지 해야 하는지 눈으로 확실히 보이는 것이였다. 하지만, Socket Programming 때는 일종의 Library를 만드는 스타일이 되어서 창섭이가 전체적으로 무엇을 작성해야하는지 자체를 모르는 것이였다. 그래서 중반쯤에 Socket관련 구체적인 시나리오 (UserConnection Class 를 이용하는 main 의 입장과 관련하여 서버 접속 & 결과 받아오는 것에 대한 간단한 sequence 를 그렸다) 를 만들고, 진행해 나가니까 진행이 좀 더 원할했다. 시간관계상 1시간정도밖에 작업을 하지 못한게 좀 아쉽긴 하다.
          * PairProgramming를 하면서 SpikeSolution 으로 한번 구성했던 소스를 다시 만들어보고, 여러번 말로 설명해보고, 더 쉬운 방법으로 설명해보려고 하는 동안 알고있는것에 대해 생각이 빨리 정리된다.
          * 다른 MFC나 ["wxPython"] 등의 다른 GUI Framework와 ["디자인패턴"] 에 익숙하면 이러한 Swing 에 익숙해지는데에도 도움이 되었다. 대부분의 GUI 에선 ["CompositePattern"] 으로 윈도우들을 구성하기에. 그리고 Java API를 공부하는 동안 ["IteratorPattern"] 이나 ["DecoratorPattern"], MVC 등에 대해서도 이해하기 용이했다.
          DeleteMe) ''참고로 자바에서는 순수한 형태의 MVC 모델을 사용하지 않습니다. 변형된 형태의 MVC 모델을 사용합니다 [http://java.sun.com/products/jfc/tsc/articles/getting_started/getting_started2.html Introducing Swing Architecture]. 이론과 실제의 차이랄까요. --이선우''
         Client 팀은 일단 메신저와 관련한 자신들의 디자인을 설명해보는 시간을 가졌다. 사람들은 프로그래밍을 하기 전에 어떤 스타일로 구상을 하게 될까. Agile Modeling 에서 봤던가. 모델 보다는 모델링이 중요하다고 했었던 이야기. 모델링을 해 나가면서 자신의 생각을 정리하고, 프로그램을 이해해 나가는 것이 중요하기에.[[BR]]
         1002의 경우 UML을 공부한 관계로, 좀 더 구조적으로 서술 할 수 있었던 것 같다. 설명을 위해 Conceptual Model 수준의 Class Diagram 과 Sequence, 그리고 거기에 Agile Modeling 에서 잠깐 봤었던 UI 에 따른 페이지 전환 관계에 대한 그림을 하나 더 그려서 설명했다. 하나의 프로그램에 대해 여러 각도에서 바라보는 것이 프로그램을 이해하는데 더 편했던 것 같다. [[BR]]
         1002는 CVS 사용방법에 대한 예를 보이고 설명을 했다. wincvs 윈도우 버전에 익숙하지 않았던 관계로 command 입력방법을 가르쳐줬다. 그리고 영서와는 주로 Swing쪽을, 창섭과는 Java Socket Class 에 익숙해지기 위해 Socket 관련 SpikeSolution 을 했다.
  • Refactoring/ComposingMethods . . . . 5 matches
         = Chapter 6 Composing Methods =
          * You have a code fragment that can be grouped together.[[BR]]''Turn the fragment into a method whose name explains the purpose of the method.''
          void printOwing(double amount){
          printBanner();
          // print details
          System.out.println( "name:" + _name);
          System.out.println( "amount" + amount);
          void printOwing(double amount){
          printBanner();
          // print details
          printDetails( amount );
          void printDetails (double amount){
          System.out.println( "name:" + _name);
          System.out.println( "amount" + amount);
         == Inline Method p117 ==
          * A method's body is just as clear as its name. [[BR]] ''Put the method's body into the body of its callers and remove the method.''
          int getRating(){
          int getRating(){
         == Inline Temp p119 ==
          * You have a temp that is assigned to once twith a simple expression, and the temp is getting in the way of other refactorings. [[BR]] ''Replace all references to that temp with the expression.''
  • Refactoring/MakingMethodCallsSimpler . . . . 5 matches
         = Chapter 10 Making Method Calls Simpler =
         The name of a method does not reveal its purpose.
          ''Change the name of the method''
         A method needs more information from its caller.
          ''Add a parameter for an object that can pass on this information''
         A parameter is no longer used by the method body.
         You have a method that returns a value but also changes the state of an object.
          ''Create two methods, one for the query and one for the modification''
         Several methods do similar things but with different values contained in the method body.
          ''Create one method that uses a parameter for the different values''
         You have a method that runs different code depending on the values of an enumerated parameter.
          ''Create a separate method for each value of the parameter''
         void setValue (String name, int value) {
         void setHeight (int arg) {
         void setWidth (int arg) {
         You are getting several values from an object and passing these values as parameters in a method call.
          ''Send the whole object instead''
         int low = daysTempRange().getLow();
         int high = days.TempRange().getHight();
         withinPlan = plan.withinRange (low, high);
  • Refactoring/MovingFeaturesBetweenObjects . . . . 5 matches
         ["Refactoring"]
         = Chapter 7 Moving Features Between Objects =
         A method is, or will be, using or used by more features of another class than the class on which it is defined.
         ''Create a new method with a similar body in the class it uses most. Either turn the old method into a simple delegation, or remove it altogether.''
         A field is, or will be, used by another class more than the class on which it is defined.
         ''Create a new field in the target class, and change all its users.''
         You have one class doing work that should be done by two.
         ''Create a new class and move the relevant fields and methods from the old class into the new class.''
         == Inline Class ==
         A class isn't doing very much.
         ''Move all its features into another class and delete it.''
         http://zeropage.org/~reset/zb/data/InlineClass.gif
         A client is calling a delegate class of an object.
         ''Create methods on the server to hide the delegate.''
         A class is doing too much simple delegation.
         ''Get the client to call the delegate directly.''
         == Introduce Foreign Method ==
         A server class you are using needs an additional method, but you can't modify the class.
         ''Create a method in the client class with an instance of the server class as its first argument.''
         == Introduce Local Extension ==
  • SmallTalk/강좌FromHitel/강의4 . . . . 5 matches
         nosmokmoin 으로 변경시에 이 페이지가 에러가 발생하는 대표적인 예이다. 이 외에도
         아직까지 자료실에서 Dolphin Smalltalk를 내리받아 설치하지 않으신 분이라
         Smalltalk 환경을 끝낼 때 File > Exit Dolphin 명령을 내리는 대신 알림판
         객체 탐색기(object inspector)는 명령을 실행할 떄 나 글
         위의 명령을 글쇠로 실행해 보면 "Inspecting a SortedCollection"
         서 'Dolphin'이라는 낱말이 들어간 것을 지금 쓰고 있는 본(image)에서 죄다
          SmalltalkSystem current browseContainingSource: 'Dolphin'
         생각보다 많은 길수에 "Dolphin"이라는 글귀가 포함되어있습니다. 이 길수
         있는 창은 현재 Dolphin Smalltalk 환경에 설치되어있는 꾸러미들을 늘어놓
         (class definition)을, 길수가 돋이되어 있다면 바탕글 등을 보여줍니다.
         창맵씨(View Composer)는 사용자 접속 환경(User Interface)를 만드는 도구
         여기서 여러분은 창(window)이나 대화 상자(Dialog box)를 만들어서 프로그
         다. "발자취 창"(walkback window)은 Smalltalk 프로그램이 실행되는 상태에
         위 명령을 실행하자마자 "SmallInteger does not understand #hello"라는 제
         목이 붙은 발자취 창이 표시될 것입니다. 이 내용인즉슨 "SmallInteger는
          SmallInteger(Object)>>doesNotUnderstand:
          UndefinedObject>>{unbound}doIt
         Dolphin의 경우 꾸러미 탐색기나 창맵씨, 자원 탐색기가 있으며, Smalltalk
         Windows와 같이 그림 위주의 사용자 환경(GUI)에서는 마우스가 필수적인 입
         쪽으로 이동하고, 은 왼쪽으로 이동합니다. 이는 Windows
  • SmallTalk/문법정리 . . . . 5 matches
         UndifinedObject(Object)>>doesNotUnderstand:
         TempTestCase>>initialize
          super initialize.
          * 모든 스몰토크 표현식이 다음과 같은 양식을 따른다.All Smalltalk expressions follow the form:
         "Code in Bold" "Comments in double-quotes"
         3 squared. "Receiver object is small integer 3."
          "The message sent is #squared"
         'abc' asUppercase. "Receiver object is string 'abc'."
          "The message sent is #asUppercase"
         200 factorial. "Receiver object is small integer 200."
          "The message sent is #factorial"
          * 선택자는 단일 식별자이며, 인수는 없다.(the selector is a single Identifier, there are no arguments)
          * Binary messages
          * 선택자는 특정한 기호(하나나 둘이상의 문자, 숫자가 아님)이고, 인수가 딱 하나만 있다.(the selector is one or two non-alphanumeric characters, followed by exactly one argument object)
          "argument is the Integer object 5"
          "argument is the String 'xyz'"
          "argument is the Integer object 20"
          * 각 키워드에 인수가 있을 때, 선택자는 하나 이상의 키워드이다.(the selector is one or more keywords, when called each keyword is followed by an argument object) -> 세번째 예시 참고
         Point x: 4 y: 200. "receiver is the object Point"
          * Unary 메세지는 가장 높은 우선 순위를 가진다. messages have the highest precedence.
  • TopicMap . . . . 5 matches
         TopicMap''''''s are pages that contain markup similar to ['''include'''] (maybe ['''refer'''] or ['''toc''']), but the normal page layout and the ''print layout'' differ: expansion of the includes only happens in the print view. The net result is that one can extract nice papers from a Wiki, without breaking its hyper-linked nature.
         ''Nice idea. But i would just make it the normal behavior for external links. That way you don't clutter MoinMoin with too many different features. --MarkoSchulz''
         I plan to use [ ] with a consistent syntax for such things. How do you mean the external link thing? Including other web pages, or "only" other Wiki pages?
         OK, for the simple stuff (i.e. local links), how about this:
          * [ include:WikiName] always includes the referred page
          * [ map:WikiName] for print inclusion (better names than ''map''?)
         Could you provide a more involved example markup and its corresponding rendering? As far as I understand it, you want to serialize a wiki, correct? You should ask yourself what you want to do with circular references. You could either disallow them or limit the recursion. What does "map" do? See also wiki:MeatBall:TransClusion''''''. -- SunirShah
         '''Moin Moin Manual'''
          1. Wiki Introduction
          1. InterWiki
          1. MoinMoinBugs
          1. InterWiki list
         This is useable for navigation in the '''normal''' view. Now imagine that if this is marked as a TopicMap, the ''content'' of the WikiName''''''s that appear is included ''after'' this table of contents, in the '''print''' view.
  • UDK/2012년스터디/소스 . . . . 5 matches
         // EmeraldStage/ESGameInfo.uc
         class ESGameInfo extends UTDeathmatch;
         // definition of member variable, assigning value is done at defaultproperties function
         var int a;[[Media(Example.mp3)]]
         // Event occured when character logged in(or creation). There are existing function PreLogin, PostLogin functions.
         event PlayerController Login(string portal, string options, const UniqueNetId uniqueID, out string errorMsg)
          pc = super.Login(portal, options, uniqueID, errorMsg);
         event PostLogin(PlayerController pc)
          `log(pc.Name@"logged in");
          super.PostLogin(pc);
          if ( (Health <= 0) || bFeigningDeath ) {
          // Move camera to prevent pinning by world
          // @todo fixmesteve. If FindSpot fails, then (rarely does) camera pinned continously.
          FindSpot(GetCollisionExtent(), CamStart);
          CurrentCameraScale = FMin(CameraScale, CurrentCameraScale + 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*fDeltaTime);
         class SeqAct_ConcatenateStrings extends SequenceAction;
         var() String ValueA;
         var() String ValueB;
         var string StringResult;
          StringResult = (ConcatenateWithSpace) ? ValueA@ValueB : ValueA$ValueB;
  • User Stories . . . . 5 matches
         원문 : http://www.extremeprogramming.org/rules/userstories.html
         User stories serve the same purpose as use cases but are not the same. They are used to create time estimates for the release planning meeting. They are also used instead of a large requirements document. User Stories are written by the customers as things that the system needs to do for them. They are similar to usage scenarios, except that they are not limited to describing a user interface. They are in the format of about three sentences of text written by the customer in the customers terminology without techno-syntax.
         User stories also drive the creation of the acceptance tests. One or more automated acceptance tests must be created to verify the user story has been correctly implemented.
         One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications. The biggest
         difference is in the level of detail. User stories should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement. When the time comes to implement the story developers will go to the customer and receive a detailed description of the requirements face to face.
         Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. Longer than 3 weeks means you need to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. About 80 user stories plus or minus 20 is a perfect number to create a release plan during release planning.
         Another difference between stories and a requirements document is a focus on user needs. You should try to avoid details of specific technology, data base layout, and algorithms. You should try to keep stories focused on user needs and benefits as opposed to specifying GUI layouts.
  • VonNeumannAirport . . . . 5 matches
         SPEC : http://icpc.baylor.edu/past/icpc2001/Finals/problems.pdf 중 Problem A
          * 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
          * ["Refactoring"] Bad Smell 을 제대로 맡지 못함 - 간과하기 쉽지만 중요한 것중 하나로 naming이 있다. 주석을 다는 중간에 느낀점이 있다면, naming 에 대해서 소홀히 했다란 느낌이 들었다. 그리고 주석을 달아가면서 이미 구식이 되어버린 예전의 테스트들 (로직이 많이 바뀌면서 테스트들이 많이 깨져나갔다) 를 보면 디미터 법칙이라던가 일관된 자료형의 사용 (InformationHiding) 의 문제가 있었음을 느낀다.
          -> 이에 따라 Input 부분이 바뀌고, Input 부분이 클래스와 합쳐진 코드의 경우 더더욱 골치.
          * 가장 트래픽이 많이 발생하는 길을 알아낸다. - 복도에 대해서 InformationHiding.
          * 지금 만든 모듈의 소스 수정없이 GUI 버전으로 재작성하기 - Input / Output 먼저 작성하는 사람들은 가장 고생.
          * 출력 Output 의 Sorting 을 2가지로 둔다면?
  • WikiWikiWeb . . . . 5 matches
         The [wiki:Wiki:FrontPage first ever wiki site] was founded in 1994 as an automated supplement to the Wiki:PortlandPatternRepository. The site was immediately popular within the pattern community, largely due to the newness of the internet and a good slate of Wiki:InvitedAuthors. The site was, and remains, dedicated to Wiki:PeopleProjectsAndPatterns.
         Wiki:WardCunnigham created the site and the WikiWikiWeb machinery that operates it. He chose wiki-wiki as an alliterative substitute for quick and thereby avoided naming this stuff quick-web. An early page, Wiki:WikiWikiHyperCard, traces wiki ideas back to a Wiki:HyperCard stack he wrote in the late 80's.
         See also one of these links:
          * get some answers on the Wiki:WikiWikiWebFaq
          * get to know more about the Wiki:WikiHistory
          * [http://news.mpr.org/programs/futuretense/daily_rafiles/20011220.ram Ward Cunningham Radio Interview]
  • WindowsTemplateLibrary . . . . 5 matches
         {{|The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
         In an uncharacteristic move by Microsoft—an outspoken critic of open source software—they made the source code of WTL freely available. Releasing it under the open-source Common Public License, Microsoft posted the source on SourceForge, an Internet open-source repository. The SourceForge version is 7.5.
         Being an unsupported library, WTL has little formal documentation. However, most of the API is a direct mirror of the standard Win32 calls, so the interface is familiar to most Windows programmers.|}}
         WTL은 객체지향적인, Win32 를 캡슐화하여 만들어진 C++라이브러리로 MS 에서 만들어졌다. WTL은 프로그래머에 의한 사용을 위해 API Programming Style을 지원한다. WTL MFC에 대한 경량화된 대안책으로서 개발되었다. WTL은 MS의 ATL를 확장한다. ATL 은 ActiveX COM 을 이용하거나 ActiveX 컨트롤들을 만들기 위한 또 다른 경량화된 API 이다. WTL은 MS 에 의해 만들어졌디면, MS 가 지원하진 않는다.
         지원이 되지 않는 라이브러리이기 때문에 WTL에 관한 문서는 거의 없다. 그러나 대부분의 API는 표준 Win32 콜을 거의 직접적으로 반영하므로, WTL의 인터페이스는 대부분의 윈도우즈 프로그래머들에게 친숙하다.
  • XMLStudy_2002/Start . . . . 5 matches
          1 Invalid Documents : XML의 태그 규칙을 따르지 않거나,DTD를 사용한 경우에 DTD에 정의된 규칙을 제대로 따르지 않는 문서
          * 위에 3개중 Invalid Documents는 실제 XML 문서로서의 역할을 할수 없다. XML 파서로 파싱 했을 때 바르게 파싱되지 않기 때문이다.
         <?xml version="1.0" encoding="KSC5601"?>
         <!ATTLIST MAIL STATUS (official|informal) 'official'>
         <MAIL STATUS="informal">
          1. Processing Instructions(Optional) : XML문서를 어떻게 처리해야 할지를 기술해 주는 부분
         === Processing Instructions(PI) ===
         <?xml version="1.0" standalone="yes" encoding="KSC5601"?>
          *encoding : 문서 작성시에 사용된 인코딩 방식을 기술
         <!ENTITY 엔티티 명칭 PUBLIC Public_indentifier "외부 XML문서의 URI">
         <?xml version="1.0" encoding="KSC5601"?>
         <CHAPTER_TITLE>Chapter1.Instruction</CHAPTER_TITLE>
         <?xml version="1.0" encoding="KSC5601"?>
         <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
         <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
         <!ENTITY %block "P %heading; |%list; |%preformatted; |DL |DIV |NOSCRIPT | BOCKQUOTE ">
         <?xml version="1.0" encoding="KSC5601"?>
  • [Lovely]boy^_^/Diary/2-2-10 . . . . 5 matches
         == In Korean ==
          * SBPP 서문, Introduction 읽었다. 읽으면서 첨에 나온 예제를 C++ 예제로 바꾸어 보았다. 이제 슬슬 문법이 감이 오기 시작한다.
         == In English ==
          * I read the SBPP's preface, introduction. And I change a first smalltalk source to a C++ source. I gradually know smalltalk grammar.
          * The XB Project starts really. A customer is Jae-dong. So we determine to programm network othelo, that Jae-dong's preparation. At first, we start hopefully, but..--; after all integration is failed. In our opinion, we start beginner's mind. but we learned much, and interested it. And new customer is Hye-sun. Since now, our project begins really. Since tomorrow, during 2 weeks, we'll focus on TDD and pair programming with simple programming.
          * I read the SBPP's 2nd chapter - Patterns -.
          * Today's XB is very joyful. Today's fruit is better than yesterday's, and a result is maybe going to come out tommorow. Although Jae-Dong sacrifices for joyful programming;; Today is fruitfull day.
          * Today's XB is full of mistakes.--; Because Java Date class's member starts with 0, not 1. so our tests fail and fail and fail again.. So we search some classes that realted with date.- Calendar, GregoryDate, SimpleDate.. - but--; our solution ends at date class. Out remain task is maybe a UI.
  • [Lovely]boy^_^/EnglishGrammer/PresentPerfectAndPast . . . . 5 matches
          A. Tom is looking for his key. He can't find it. He has lost his key.(= He lost it and he still doesn't hav it.)
          The present perfect : have/has + past participle (have/has + 과거분사)
          B. When we use the peresent perfect, there is a connection with now. The action in the past has a result now.
          We often use the present perfect to give new information or to announce a recent happening.(새로운 정보나, 최근의 사건을 보도할때도 쓰인답니다.)
          ex1) The road is closed. There's been an accident.
          ex2) (from the news) The police have arrested two men in connection with the robbery.
          We also use the simple past some situations.( ... 어쩌라는 거야..ㅠ.ㅠ 쓸거면 확실하게 한군데만 쓰던지..;;)
          C. We ofte use the present perfect with just, already, and yet. You can also use the simple past.
          We use already to say that something happened sooner than expected.(예상했던것보다 더 빨리 사건이 터졌을때 쓴다)
          Yet = until now. It shows that the speaker is expecting something to happen. Use yet only in questions and negative sentences.
          ex1) Has it stopped raining yet? (simple past도 가능!)
          ex2) I wrote the letter, but I haven't mailed it yet. (역시 simple past 가능)
          D. Don't use the present perfect when you talk about a finished time.(이미 끝난일 가지고 현재 완료 쓰지말란다. 당연한 얘기)
          A. When we talk about a period of time that continues from the past until now, we use the present perfect.(앞에 나온말)
          ex) I've never been to China. Have you been there?
          Here are more examples of speakers talking about a period that continues until now(recently/ in the last few days/ so far/ since breakfast, etc.)
          ex) Everything is going well. We haven't had any problems so far.
          B. We use the present perfect with today/ this morning/ this evening, etc. when these periods are not finished at the time of speaking.(그렇대요;;)
          C. We say, "It's the first time something has happened."(present perfect) (이건 뭐하자는 건지..;;)
          ex) Sarah has lost her passport again. It's the second time this has happened.(not happens)
  • [Lovely]boy^_^/EnglishGrammer/ReportedSpeech . . . . 5 matches
          A. You want to tell somebody else what Tom said. There are two ways of doing this :
          ex) Tom said, "I'm feeling sick."
          ex) Tom said that he was feeling sick.
          B. When we use reported speech, the main verb of the sentence is usually past. The rest of the sentence is usually past, too :
          C. The simple past can usually stay the same in reported speech, or you can change it to the past perfect.
          ex) Tom said he woke up feeling sick, so he stayed in bed. or
          Tom said he had woken up feeling sickm so he stayed in bed.
          A. It is not always necessary yo change the verb when you use reported speech. If you report something and it is still true, you do not need to change the verb.
          ex) direct : Tom said, "New York is more exciting than London."
          reported : Tom said that New York is more exciting than London. (New York is stlll more exciting. The situation hasn't changed.)
          Is is also correct to change the verb into the past.(--;)
          ex) Tom said that New York was more exciting than London.
          But you must use a past form when there is a difference between what was said and what is really true.(--; 결국은 과거 쓰란 얘기자나)
          Later that day you see Jim. He is looking fine and carrying a tennis racquet. You say :
          Use tell when you say who you are talking to ( Tell Somebody(O) )
          Otherwise use say ( Say somebody(X) )
          But you can say something to somebody.
          C. Tell/ask somebody to do something.
          We also use the infinitive(to do/ to stay, etc...) in reported speech, especially with tell and ask(for orders and requests)
          ex1) direct : "Stay in bed for a few days," the doctor said to me.
  • i++VS++i . . . . 5 matches
          * 사용한 컴파일러 : Microsoft 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 (Microsoft Visual C++ 6.0 에 Service Pack 5 를 설치했을때의 컴파일러)
         #include <stdio.h>
         void main()
          int i;
          printf("%d", i);
         #include <stdio.h>
         void main()
          int i;
          i++; // 이렇게 하면 차이가 당연히 없지 않을까요? 이럴때는 선행이든 후행이든 증가한뒤에 printf에서 그 변수를 사용했으니..
          printf("%d", i); // 문제가 되는건 함수(i++)또는 함수(++i)이런데에서 문제가 생길거 같은데..
          간단히 생각하면 되는 것이었습니다.. i++ 이나 ++i 모두 값(value)을 생성하는 연산자 입니다. 그러므로.. i 가 5 일때 i++ 의 값은 5이므로.. printf("%d", i) 는 5를 찍어주겠지요.
          inc DWORD PTR _i$[ebp] ; 변수 i 인 _i$[ebp] 를 1 만큼 증가시킴
          inc DWORD PTR _i$[ebp] ; 차이 없음
          inc eax ; eax 를 1 만큼 증가시킴
          inc eax
         #include <stdio.h>
         void main()
          for(int i = 0 ; i < 10 ; ++i)
          printf("%d", i);
         #include <stdio.h>
  • 강희경/메모장 . . . . 5 matches
         #include <stdio.h>
         #include <stdlib.h>
         #define NUMBER_OF_SCORES 5
          int sum;
          int max;
          int min;
          int score;
          int rank;
         void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray);
         void PrintArray(struct ArratData* aArrayData, struct ScoreData* aArray);
         void PrintRanks(struct ScoreData* aArray);
         int main(){
          InputScores(&arrayData, scoreArray);
          PrintArray(&arrayData, scoreArray);
          PrintRanks(scoreArray);
         void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray){
          int count = 0;
          printf("\nEnter a number for score[%d] : ", count);
          aArrayData->min = aArray[count].score;
          if(aArray[count].score < aArrayData->min){
  • 네이버지식in . . . . 5 matches
          네이버 지식in은 폐인까지 생겨나면서 비슷한 위키는 이렇게 참여가 저조할까.
         지식in이란 서비스는 질문에 답변을 해주는 게시판 형식이긴 하지만, 참여가 자유롭고 한 주제에 대해 글을 쓴다는 점에서 위키랑 비슷하다는 생각이다. '''오픈 백과사전'''이라는 게 있기도 하던데 이게 위키랑은 더 비슷한 형태이지만 지식in에 대면 별로 인기가 없어보인다.
         가장 먼저 떠오른 건, 이용자 수였다. 이용자 수가 엄청나게 많다는 점이 지식in서비스를 활발하게 해 주었다. 이용자 수가 많아진 이유는 여러 가지가 있겠지만, 텔레비전 광고까지 낼 정도로 홍보를 해서 그렇지 않을까? 반면 위키 홍보는 몇 번인가 하고는 그 뒤로는 사람들이 알아서 쓰기를 바랬던 것으로 보인다. 알려지지 않은 서비스가 아무리 많은 장점이 있다 한들 사람들이 알아야 쓸테니까, 위키 사용이 활발하지 않은 건 일단 덜 알려져서라고 생각한다.
          ''왠만큼 소프트웨어를 아고 있는 사람들은 OS독점이라고 알고 있는데요. 아닌가요? :) --NeoCoin''
          ''말씀하신 익숙함의 의미를 제가 독점으로 바라봐서 생기는 오해인것 같습니다. 분명 청정원 케찹도 있지만 오뚜기 케찹을 선택하고 많이 팔리는 것을 '익숙함'으로 볼수 있습니다. 하지만 오뚜기 케찹을 쓰지 않으면 모든 요리를 할수 없는 상황이 되면 그걸 이제 '익숙함'이라고 설명하기보다 독점으로 바라봐야 한다고 생각하거든요. :) --NeoCoin''
         사람들은 [네이버지식in]을 마치 수학 문제 해답지처럼 여기는 것 같습니다. 저도 요즘엔 누가 궁금한 게 있다고 물어봤을 때 모르는 경우''지식in 검색해봐''라는 말을 자주 합니다. 제가 누군가에게 모르는 걸 물어봤을 때도 자주 듣습니다. ''지식in엔 없는게 없다니까''라는 말도 들어보았습니다. 마치 [네이버지식in]에는 살아가며 궁금한 것들에 대한 모든 해답이 있는 듯이 여기고 있다고 느꼈습니다. -[Leonardong]
         Knowledge In Naver 의 약자로 KIN 이라는 단어가 url 에 들어간더군요... 그냥 '즐' 이라는 단어만 생각했는데.. Knowledge In Naver 였다니...^^; - 임인택
         KIN 은 Knowledge In Naver 의 약자가 아니라 지식In -> Knowledge In -> kin 으로 사용하는 것이지요.
  • 논문번역/2012년스터디/김태진 . . . . 5 matches
         완전한 영어 문장들로 학습/인식을 위한 데이터를 제공했는데, 각각은 Lancaster-Oslo/Bergen corpus에 기초한다. 글쓴이에 상관없는 형태와 마찬가지로 다수의 저자에 의한 실험은 the Institute of Informatics and Applied Mathe- matics (IAM)에서 수집한 손글씨 형태를 사용했다. 전체 데이터는 다양한 텍스트 영역들을 가지고 있고,500명보다 많은 글쓴이들이 쓴 1200개보다 많은 글씨를 가지고 있다. 우리는 250명의 글쓴이가 쓴 글쓴이-독립적인 실험에서 만들어진 카테고리들의 형태를 사용하고, 6명의 글쓴이가 쓴 c03 형태로 여러 글쓴이 모드를 적용해본다.
          이 두가지 데이터들 모두 300dpi using 256 grey-levels로 스캔해서 사용했고, Fig 에서 각각의 데이터를 예시로 제시한다.
         주어진 손글씨 문서에 대한 이미지에 대해 처음 전체 이미지를 삐뚤게 쓴 것은(?) 글쓰는 것에 대한 지속적인 "drift"(흐름) - 지속적으로 계속되는 것이거나 스캔하는 동안 부정확하게 놓여진 것(가지런하게 두지 않아서..)에 의한 오류들을 수정하기 위해 고쳤다. 그래서, 그 이미지는 2진화된 이미지를 수직 밀집 히스토그램에서 최소한의 엔트로피가 될때까지 반복한다. 이러한 전처리는 IAM 데이터베이스에 대한 공식을 사용하지 않았는데, 글쓴이들이 스캔하는 동한 정확하게 ???????because the writers were asked to use rulers on a second sheet put below the form and the formulars itself are aligned precisely during scanning.
          더 많은 문서 작업을 위해, 개인의 손글씨 각 줄들을 추출했다. 이것은 글씨들을 핵심 위치들 사이로 이미지를 쪼개는 것으로 할 수 있었다. 핵심 위치란, 글씨의 아래위 선사이의 영역과 같은 것인데, 핵심 위치에 존재하는 줄에서 필요한 전체 픽셀들의 최소 갯수를 말하는 한계점을 응용하여(?)찾을 수 있다. 이러한 한계점은 2진화된 손글씨 영역에 대한 수직적인 밀집 히스토그램(the horizontal density histogram of the binarized handwriting-area)을 사용한 Otsu method를 사용하여 자동적으로 만들 수 있다. 검은색 픽셀들의 갯수는 수평적 투영 히스토그램에 각각의 줄을 합한 갯수이고, 그 이미지는 이 히스토그램의 최소화를 따라 핵심 위치들 사이로 조각 내었다.
          글쓰는 스타일이 때로 한줄 내에서 중요하게(?) 바뀐다는 관측에 고무되어서, 우리는 각 손글씨 줄들을 각각 수직적인 위치, 기울어짐, slant에서 수정했다. 그래서 각각의 줄은 문서의 부분 사이에 공백으로 찾아 쪼개었다. 한계점은 일반화 요소들을 통했을때에 계산하기에 너무 짧은 부분들을 피하기 위해 사용했다. 반면에 수직적인 위치와 기울어진 것은 [15]에서 묘사된 방법과 비슷한 선형적 regresion?을 사용한 기준선 추정 방법으로 고쳤고, slant 각도에 대한 계산은 모서리의 방향에 기초하여 고쳤다. 그렇게 이미지를 이진화했고 수직적인 변화를 추출하여 consid- ering that only vertical strokes are decisive for slant estima- tion. Canny 모서리 감지는 각 히스토그램에서 계산된 모서리 방향 데이터를 얻기위해 사용했다. 그 히스토그램의 의미는 slant 각도를 사용하는 것이다.
         == Linear Algebra and its applications ==
         == 1.7 Linear Independence 선형 독립성 ==
         Definition
         만약 벡터 방정식 ...가 오직 자명한 해를 가진다면 Rn에 있는 인덱싱된 벡터들의 집합을 선형적으로 독립적(linearly independent)이라고 말한다. 만약 (2)와 같은 0이 아닌 가중치가 존재한다면 그 집합은 선형 독립전이다고 한다.
          등식 (2)는 가중치가 모두 0이 아닐 때 v1...vp사이에서 linear independence relation(선형 독립 관계)라고 한다. 그 인덱싱된 집합이 선형 독립 집합이면 그 집합은 선형독립임이 필요충분 조건이다. 간단히 말하기위해, 우리는 {v1,,,vp}가 선형독립 집합을 의미할때 v1...vp가 독립이라고 말할지도 모른다. 우리는 선형 독립 집합에게 유사한 용어들을 사용한다.
         Linear Independence of Matrix Columns 행렬 행에 대한 선형 독립성
         Theorem 7
         Characterization of Linearly Dependent Sets
         == 1.8 Linear Transformations ==
         Linear Transformations 선형 변환
         Definition
  • 달리기/강소현 . . . . 5 matches
         public class Running {
          public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int M = sc.nextInt();
          int T = sc.nextInt();
          int U = sc.nextInt();
          int F = sc.nextInt();
          int D = sc.nextInt();
          int [] path = new int[T];
          for(int i=0; i<T; i++){
          int run = 0;
          for(int i=0; i<T; i++){
          System.out.println(i);
  • 데블스캠프2005/금요일/OneCard/이동현 . . . . 5 matches
          int num;
          int face;
          Card delete(int n){
          int search(int num, int face){
          for(int i=0; i<arr.size(); i++){
          int size(){
          for(int i=0; i<arr.size(); i++){
          System.out.print(i+".("+card.face+" "+card.num+") ");
          System.out.print("\n");
          void initCards(){
          for(int i=0; i<4; i++){
          for(int j=0; j<13; j++){
          for(int i=0; i<10; i++){
          comCards.add(stack.delete(rand.nextInt(stack.size()-1)));
          playerCards.add(stack.delete(rand.nextInt(stack.size()-1)));
          discard.add(stack.delete(rand.nextInt(comCards.size())));
          System.out.println("컴퓨터카드");
          System.out.println("마지막으로 낸 카드");
          System.out.println(discard.retTop());
          System.out.println("플레이어카드");
  • 데블스캠프2009/목요일/연습문제/MFC/김태욱 . . . . 5 matches
         #include "stdafx.h"
         #include "zxczxc.h"
         #include "zxczxcDlg.h"
         #define new DEBUG_NEW
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
         BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
          //{{AFX_DATA_INIT(CZxczxcDlg)
          //}}AFX_DATA_INIT
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         BEGIN_MESSAGE_MAP(CZxczxcDlg, CDialog)
          ON_WM_PAINT()
         BOOL CZxczxcDlg::OnInitDialog()
          CDialog::OnInitDialog();
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
  • 데블스캠프2009/목요일/연습문제/MFC/정종록 . . . . 5 matches
         #include "stdafx.h"
         #include "Test.h"
         #include "TestDlg.h"
         #define new DEBUG_NEW
         int sign = 0;
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
         BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
          //{{AFX_DATA_INIT(CTestDlg)
          //}}AFX_DATA_INIT
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
         ON_WM_PAINT()
         BOOL CTestDlg::OnInitDialog()
          CDialog::OnInitDialog();
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  • 문자열검색/조현태 . . . . 5 matches
         #include <iostream>
         #include <string.h>
         #include <fstream>
         using namespace std;
         const int MAX_LONG=40;
         const int TRUE=1;
         const int FALSE=0;
         void result_write( int , char* , char* );
         int main()
          char x[MAX_LONG] = "His teaching method is very good.";
          cin >> y;
          int where_word=0;
          int such_word=0;
         void result_write(int where, char *original, char *such_word)
          outputFile << "자료 -> " << original << "\n찾을 문자열 -> " << such_word << "\n";
         -export([findString/2]).
         getText(Index) when 0 < Index -> Index - 1;
         getText(Index) -> "Not found!".
         findString(String, SubString) -> getText(string:rstr(String, SubString)).
         ./pr_7.erl:4: Warning: variable 'Index' is unused
  • 변준원 . . . . 5 matches
         (define (f x)
          (when (< x 10) (begin (print 2) (print *)(print x) (print =)(print (* 2 x)) (newline) (f (+ x 1)))))
         (define (f y)
          (when (< y 10) (begin
          (define (f x) (when (< x 10) (begin (print y)
          (print *)
          (print x)
          (print =)
          (print (* 2 x))
          (newline)
         #include<iostream>
         #include<ctime>
         using namespace std;
         int move();
         int check();
         int x,y;
         int number=0;
         int matrix[5][5];
         int main()
          const int max=5;
  • 정모/2012.3.19 . . . . 5 matches
          * [이민규]의 DLL Injection의 원리와 시연
          - DLL Injection의 원리 설명
          - DLL Injection 시연(myhack.dll Inject)
         == Ice breaking ==
          * [Spring/탐험스터디]
          * Linux Kernel 스터디
          * floating server와 비슷한 아이디어인듯. 되게 재미있을거같은데 영어가 좀.. 아 자꾸 미련가네 - [서지혜]
          * This meeting was so interesting. I was so glad to meet Fabien. From now, I think we should make our wiki documents to be written in English. - [장용운]
          * Hmm.. I think it isn't good idea. If we only use English in Wiki, nobody will use Wiki...--; -[김태진]
          * 그렇게 바로 시작할 줄 몰랐는데 10분쯤 늦었더니 OMS가 이미 시작되어 있었어요ㅜㅜ 6피에 있다가 내려온건데 다음부터는 좀 더 빨리 내려오겠습니다ㅜㅜ 아무튼, 이번 OMS 주제는 DLL Injection이었는데 영어 OMS라 설명을 다 알아들은 건지 모르겠습니다. 다행히 시연을 보면서 설명을 들어서 못알아들어도 이해할 수 있는 부분이 있었어요.
  • 포항공대전산대학원ReadigList . . . . 5 matches
         “Data Structures and Algorithms in C++”, Mitchael T. Goodrich et al., John Wiley & Sons, 2004.
         “An Introduction to Formal Languages and Automata”, Peter Linz.
         “Introduction to Automata Theory, Languages, and Computation”, J. E. Hopcroft, R. Motwani,
         “Principles of Computer Architecture”, Miles J. Murdocca and Vincent P. Heurinng, Prentice Hall, 2000.
         “Computer Organization, The HW/SW interface”, D. Patterson and J. Hennesey, Morgan Kaufman, 1994.
          “Contemporary Logic Design”, Randy H. Katz, Benjamin/Cummings 1994.
         “Operating System Concepts: 6th Edition”, Silberschatz, Galvin, and Gagne John Wiley & Sons, 2004.
         “Operating System Principles”, Lubomir F,. Bic and Alan C. Shaw, Prentice-Hall, 2003.
         “Types and Programming Languages”, Benjamin C. Pierce, The MIT Press.
         “Concepts of Programming Languages” (6th edition), Robert W. Sebesta, Addison Wesley.
  • 프로그래밍/Pinary . . . . 5 matches
         public class Pinary {
          private static String processOneCase(String line) {
          int limit = Integer.parseInt(line);
          int count = 0;
          String number;
          for(int i = 0; i < 90000000 * 2; i++) {
          number = Integer.toBinaryString(i);
          continue;
          int size = number.length();
          for(int j = 0; j < size - 1; j++) {
          if (number.substring(j, j+2).matches("11")) {
          public static void main(String[] args) {
          String line = br.readLine();
          int testCase = Integer.parseInt(line);
          for(int i = 0; i < testCase; i++) {
          line = br.readLine();
          String result = processOneCase(line);
          System.out.println(result);
          e.printStackTrace();
          e.printStackTrace();
  • 황현/Objective-P . . . . 5 matches
          * 개발자의 편의를 돕는 Gin 프레임워크가 동봉될 예정이다. (접두어: GN)
         다만, @implementation만 사용하면 @interface가 외로워하니까, 인스턴스 변수의 선언에는 @interface를 사용하도록 하고, 메소드 선언 및 정의에 @implementation을 사용한다.
         @interface MyFirstObjPClass : GNObject <GNSomeProtocol>
         $iStoreSomething;
         +(int)tellMeTheTruth {
         - (void) doSomeTaskWithSomething:(int)$localIntegerVar {
         [$myClass doSomeTaskWithSomething:42];
         GNAssert()의 경우, 두 번째 인자로 @"문자열"을 받지만, 결과적으로는 컴파일 이후 GNString으로 변해야 한다.
         private $iStoreSomething;
         public static function tellMeTheTruth() {
         public function doSomeTaskWithSomething($localIntegerVar, $_objp_type_check=false) { // (void)
         if(is_int($localIntegerVar)===false)
         GNAssert(false, new GNString('뭔가 이상하지 않아?'));
         $myClass =MyFirstObjPClass::new(); // defined in GNObject
         $myClass->doSomeTaskWithSomething(42, true); // Compiler automatically adds last argument!
         $myClass->release(); // actually, does nothing unless you overrides it.
  • 05학번만의C++Study/숙제제출4/조현태 . . . . 4 matches
          === main.cpp ===
         #include <iostream>
         #include "TestClass.h"
         using namespace std;
         const int MAX_CLASS=255;
         void main()
          int intinput;
          int classNumber=0;
          cin >> intinput;
          if (0==intinput)
          int suchNumber=-1;
          for (register int i=0; i<classNumber; ++i)
          if (intinput==makedClass[i]->GetNumber())
          makedClass[classNumber]=new TestClass(intinput);
          for (register int i=suchNumber+1; i<classNumber; ++i)
          for (register int i=0; i<classNumber; ++i)
          int m_haveInt;
          TestClass(int inputNumber);
          int GetNumber();
         #include "TestClass.h"
  • 2002년도ACM문제샘플풀이/문제A . . . . 4 matches
         #include <iostream>
         using namespace std;
         struct POINT
          int x, y;
         int numOfData;
         POINT inputData[10][4];
         int outputData[10];
         #define max(a,b) (a > b) ? a : b
         #define min(a,b) (a < b) ? a : b
         void input()
          cin >> numOfData;
          for(int i=0;i<numOfData;i++)
          for(int j=0;j<4;j++)
          cin >> inputData[i][j].x;
          cin >> inputData[i][j].y;
          POINT maxPoint, minPoint;
          int overlappedRect;
          for(int i=0;i<numOfData;i++) {
          maxPoint.x = max(inputData[i][0].x,inputData[i][2].x);
          maxPoint.y = max(inputData[i][0].y,inputData[i][2].y);
  • 2002년도ACM문제샘플풀이/문제C . . . . 4 matches
         #include <iostream>
         using namespace std;
         struct InputData
          int s;
          int f;
          int k;
         InputData* inputData;
         int numberOfData;
         void input()
          cin >> numberOfData;
          inputData = new InputData[numberOfData];
          for(int i = 0;i < numberOfData;i++)
          cin >> inputData[i].s >> inputData[i].f >> inputData[i].k;
          int count;
          for(int i =0;i < numberOfData;i++) {
          count = inputData[i].f - inputData[i].s - 1;
          if(inputData[i].s % 2 == 0)
          if( ((count / inputData[i].k) % 2 == 1 && (count % inputData[i].k) == 0)
          || ((count / inputData[i].k) % 2 == 0 && (count % inputData[i].k) != 0))
          for(int i = 0;i < numberOfData;i++)
  • 5인용C++스터디/더블버퍼링 . . . . 4 matches
         #include "resource.h"
         int my;
         void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit)
         int bx,by;
         int i,j;
         GetClientRect(hWndMain,&crt);
         hdc=GetDC(hWndMain);
          KillTimer(hWndMain,1);
         ReleaseDC(hWndMain,hdc);
         InvalidateRect(hWndMain,NULL,FALSE);
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
         PAINTSTRUCT ps;
          hBaby=LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1));
         case WM_PAINT:
          hdc=BeginPaint(hWnd, &ps);
          EndPaint(hWnd, &ps);
         return(DefWindowProc(hWnd,iMessage,wParam,lParam));
         ||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image002.jpg>)]]||
         ||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image004.jpg>)]]||
         ||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image006.jpg>)]]||
  • AOI/2004 . . . . 4 matches
          * 여름 교재 : 쉽게 배우는 실전 알고리즘 & 정보올림피아드 도전하기 ( Aladdin:8931421923 )
          * 겨울 교재 : Programming Challenges ( Aladdin:8979142889 )
          || [EcologicalBinPacking] || O || O || O || O || . || O ||
          || [MultiplyingByRotation] || . || X || X || . || . || X ||
          || [MineSweeper] || . || O || O || O || O || O || . || O ||
          || [TheTrip] || . || X || O || O || O || O || . || O ||
          || [CheckTheCheck] || . || . || O || . || . || . || . || O ||
          || [AustralianVoting]|| . || . || O || . || . || . || . || O ||
          || [TheArcheologist'sDilemma]|| . || . || X || . || . || . || . || . ||
         자.. 시작해볼까요? MineSweeper 풀어보아요 -- 재선
         void main()
          input()
          [Refactoring/BadSmellsInCode] --[강희경]
         한 문제를 풀어본 후에 소요시간이 만족스럽지 못하거나 결과코드가 불만족스럽다면 이렇게 해보세요. 내가 만약 이 문제를, 아직 풀지 않았다고 가정하고, 다시 풀어본다면 어떻게 접근하면 더 빨리 혹은 더 잘 풀 수 있을까를 고민합니다. 그리고 그 방법을 이용해서 다시 한 번 풀어봅니다(see DoItAgainToLearn). 개선된 것이 있나요? 이 경험을 통해 얻은 지혜와 기술을 다른 문제에도 적용해 봅니다. 잘 적용이 되는가요?
  • ATmega163 . . . . 4 matches
          * 130 Powerful Instruction - RISC MPU
          * Master / Slave SPI Serial Interface
          * Byte - oriented 2-wire Serial Interface
         == 웨비 사운드에서 구한 ATmega 163 L 보드에 관한 Testing ==
          * 용산 가서 9 pin 짜리 Serial Port 잭과 5.5volt 어덥터에 끼울 것을 준비한다.
          * 9 pin 에서 TX는 2번 RX 3번 접지는 5번에 연결 시킨다.
          * 이후 새롬 데이타맨에서 모뎀에 의한 연결로 SETTING하고 baud rate를 19300(ㅠㅠ) 로 설정 후 reset 버튼을 누르면 [[BR]]
         === AVR GCC Programming ===
          c:\avrgcc>에서 install을 실행 시킨 후 바탕화면의 avr-gcc 배치파일을 이용해 도스창을 열어서 쓴다.
         include $(AVR)/include/make1
         ########### change this lines according to your project ##################
          HEADER = ../Include
         #INCDIR means .h file search path
          INCDIR = . -I$(HEADER)
         #put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.)
         #put the name of the target file here (without extension)
         #additional libraries and object files to link
         #additional includes to compile
          INC =
         #INCDIR means .h file search path
  • AcceleratedC++/Chapter11 . . . . 4 matches
         = Chapter 11 Defining abstract data types =
         3장에서 작성한 Student_info 타입은 복사, 대입, 소멸시에 어떤 일이 수행되는지 명세되어있지 않음.
         == 11.1 The Vec class ==
         vector<Student_info> vs;
         vector<Student_info>::const_iterator b, e;
         vector<Student_info>::size_type i = 0;
         //vector의 각요소를 살펴보기 위해, size 및 index 연산자를 사용
         b=vs.begin();
         == 11.2 Implementing the Vec class ==
          //interface
          begin, end, size 함수를 구현해야 하므로 이러한 작업을 위해서 '''첫 요소의 주소, 마지막 요소를 하나 지난 주소, 요소들의 개수'''를 저장할 수 있어야한다.
          size는 begin, end 를 통해서 그 크기를 구하는 것이 가능하므로 여기서는 '''첫 요소의 주소, 마지막 요소를 하나 지난 주소'''를 저장하고 개수는 계산을 통해서 구현한다.
          //interface
          따라서 어떤 타입이 Vec에서 사용되는진는 정의부가 instiation 되기 전에는 알 수 없다.
         Vec<Student_info> vs; // default constructor
         Vec<Student_info> vs(100); // Vec의 요소의 크기를 취하는 생성자
         Vec<int> vi(100); // Working. int 를 통해 명시적인 생성
         Vec<int> vi = 100; // not working. 암묵적으로 Vec를 생성하고 그 값을 vi 에 복사한다. refer 11.3.3
          back_inserter(T)함수를 통해서 동적으로 크기를 변경시키기 위해서 '''value_type, push_back''' 타입을 정의함. (value_type 은 현재 저장된 요소가 어떤 타입인지를 알려줌)
          iterator begin() { return data; }
  • ActiveTemplateLibrary . . . . 4 matches
         {{|The Active Template Library (ATL) is a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. The COM support in Visual C++ allows developers to easily create a variety of COM objects, Automation servers, and ActiveX controls.
         === String Conversion ===
         OLE String 과 PSTR 등의 일반 스트링형 간 형변환 할 일이 있을때.
          * [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_atl_string_conversion_macros.asp ATL and MFC String Conversion Macros]
         ex) OLE2CA : '''OLE''' string '''2'''(to) '''C'''onst '''A'''nsi sting
         ATL string의 형변환시에는 {{{~cpp USES_CONVERSION}}} macro를 형변환 전에 호출하여야함.
         {{{~cpp QueryInterface}}} 까지 대신 해주는 smart pointer class
         CComQIPtr<IOleWindow> pOleWin(pUnk);
         //일반적인 COM interface 사용은
         IOleWinodow* pOleWin;
         pUnk->QueryInterface(IOleWindow, IID_IOleWindow, &pOleWin);
         pOleWin->Release();
  • BasicJAVA2005/실습1/조현태 . . . . 4 matches
         import java.io.InputStreamReader;
          public static void main(String[] args) {
          int[] answers = new int[3];
          int[] inputNumbers = new int[3];
          int strike = 0;
          int ball = 0;
          for (int i = 0; i < 3; ++i)
          answers[i] = NumberCreator.nextInt(10);
          for (int j = 0; j < i; ++j)
          answers[i] = NumberCreator.nextInt(10);
          Scanner NumberScanner = new Scanner(System.in);
          for (int i = 0; i < 3; ++i)
          inputNumbers[i] = NumberScanner.nextInt();
          for (int i = 0; i < 3; ++i)
          for (int j = 0; j < i; ++j)
          if (inputNumbers[i] == inputNumbers[j])
          System.out.println("동일한 숫자를 입력하였습니다. 다시 입력해주세요.");
          for (int i = 0; i < 3; ++i)
          if (answers[i] == inputNumbers[i])
          for (int j = 0; j < 3; ++j)
  • BookShelf . . . . 4 matches
          1. ConceptsOfProgrammingLanguages
          1. [IntroductionToAlgorithms]
          1. [TheElementsOfStyle] 4e
          1. [생각하는프로그래밍] ( [ProgrammingPearls] 번역서 )
          1. ProgrammingLanguageProcessorsInJava
          [http://dbmain.snu.ac.kr/maro/books.html 책]
          Art of UNIX Programming
         [ConceptualBlockbusting] - 20070210
         [Blink] - 20070228
         Generating Typed Dependency Parses from Phrase Structure Parses - 20070215
         A Maximum-Entropy-Inxpired Parser - 20070216
         [http://jania.pe.kr/wiki/jwiki/moin.cgi/BookShelf 강규영님 BookShelf]
  • CarmichaelNumbers . . . . 4 matches
         === Input ===
         === Sample Input ===
         The number 1729 is a Carmichael number.
         The number 561 is a Carmichael number.
  • Chapter I - Sample Code . . . . 4 matches
          === Installing uCOS-II ===
          === INCLUDES.H ===
          === Compiler-Independent Data Types ===
          각각의 프로세서마다 int 형 데이터의 크기 char 형 데이터의 크기.. 등등이 다르기 때문에 다음과 같은 식으로 재정의를 해준다.
          typedef unsigned char INT8U
          typedef signed int INT16S
          // 형 재정의 (#define이용)
          #define BYTE INT8S
          OS 를 작성하다보면 전역변수가 필요한 경우가 있다. 전역변수는 어떻게 선언하는가? extern 키워드를 사용하면 된다. 하지만 uCOS-II 에서는 extern 키워드마저 #define 해서 다른 매크로로 사용한다.
         #define OS_EXT
         #define OS_EXT_extern
         OS_EXT INT32U OSIdleCtr;
         OS_EXT INT32U OSIdleCtrRun;
         OS_EXT INT32U OSIdleCtrMax;
         extern INT32U OSIdleCtr;
         extern INT32U OSIdleCtrRun;
         extern INT32U OSIdleCtrMax;
         #define OS_GLOBALS
         #include "inlcudes.h"
         INT32U OSIdleCtr;
  • Class로 계산기 짜기 . . . . 4 matches
         #include <iostream>
         using namespace std;
          int firstNumber;
          int secondNumber;
          int resultNumber;
          void setFirstNumber(int firstNumber){ this->firstNumber = firstNumber;}
          void setSecondNumber(int secondNumber){ this->secondNumber = secondNumber;}
          void setResultNumber(int resultNumber){ this->resultNumber = resultNumber;}
          int getFirstNumber(){ return firstNumber;}
          int getSecondNumber(){ return secondNumber;}
          int getResultNumber(){ return resultNumber;}
         class NumberInputer
          inputFirstNumber(memory);
          inputSecondNumber(memory);
          inputSign(memory);
          void inputFirstNumber(Memory * memory)
          int firstNumber;
          cin >> firstNumber;
          void inputSecondNumber(Memory * memory)
          int secondNumber;
  • CuttingSticks . . . . 4 matches
         === About [CuttingSticks] ===
         나무막대를 여러 조각으로 잘라야 한다. 절단 분야에서 가장 뛰어난 것으로 알려진 ACM(Analog Cutting Machinery)이라는 회사에서는 자를막대의 길이에 따라 요금을 부과한다. 그리고 톱의 구조상 한 번에 하나씩만 자를 수 있다.
         === Input ===
         === Sample Input ===
         The minimum cutting is 200.
         The minimum cutting is 22.
         || 문보창 || C++ || 2일 || [CuttingSticks/문보창] ||
         || 김상섭 || C++ || 3년 || [CuttingSticks/김상섭] ||
         || 하기웅 || C++ || 몇일 || [CuttingSticks/하기웅] ||
  • DoubleBuffering . . . . 4 matches
         void CArcanoidView::OnInitialUpdate()
          CView::OnInitialUpdate();
         Invalidate(FALSE);
          * 이렇게 Timer내부에서는 메모리 DC에다 다 그려주고, Invalidate(FALSE)를 호출합니다. FALSE 이거 중요합니다.
         ["1002"] : 더블 버퍼링을 하는 이유는, Main Memory <-> Main Memory 간의 메모리복사(Blt하는 것) 이 Main Memory -> Video Memory 간의 메모리 복사보다 빠르기 때문에 하죠. [[BR]]
         화면 전체를 한꺼번에 렌더링 한 다음 버퍼를 바꿔주는 방식을 이야기하는 것 보면 아마 Page Fliping 을 이야기하시는듯. 단, 이것은 GDI 로는 불가능하지 않을까요? ^^ DC 핸들을 우리가 직접 조작할 수는 없는 것이고.. 말 그대로, 버퍼를 바꾼다는 것은 화면에 표시해 주는 메모리를 가리키는 포인터의 값을 바꾸는 거니까. Page Fliping 은 DOS나 DX에서는 가능할지 몰라도 GDI 에서는 불가능한 방법일것이라는 개인적 생각. (DC에 Select 되어있는 Bitmap 을 다시 셋팅해주는 방법은 어떨까. 한번도 안해봤지만. --;) [[BR]]
         그리고, 전체 그리기 관련 루틴의 경우는 애매한데, 왜냐하면 저렇게 object 별로 그리기 루틴이 있는 경우 사람들 실수하는 것이.. 각각의 Draw에 더블버퍼링하고 또 메인 루틴부분에 더블버퍼링을 중복하는 경우가 있어서리.. (뭐. 요새는 하드웨어가 빨라서 별 속도 저하 없긴 한것 같지만.) 개인적으로는 각각의 Draw부분에는 일반적인 Blt. 그리고 Main 부분에 더블버퍼링 한번이 맞지 않을까 하는. 뭐.. 그냥 생각나서 주저리주저리. --; [[BR]]
         ["neocoin"] : 결론은 요즘 하드웨어 짱이야? 인거야? [[BR]]
         ["zennith"] : 뜬금없는 소리이고, 고루한 이야기 입니다만, PCI 란 기술이 처음 소개되었을때 꽤 미래지향적인 기술로 각광받았던 것이 PCI bus mastering 이란 기술인데.. 무엇인고 하니, pci 채널로 연결되어있는 기기들끼리 서로의 메모리에 DMA 를 할 수 있었던 것이었죠. 대표적으로 이 기술이 사용된 예(라기보단 제가 알고있는 단 하나의 예)는 TV수신카드에서 사용되는 것이었는데요. TV 어플리케이션에서 TV 가 표시될 부분의 region 을 정해놓으면 TV 수신카드에서 그부분에 해당하는 비디오카드 메모리로 직접 쏴주는.. 그런 기술이었는데.. 더블버퍼링을 보니 갑자기 그 생각이 나는군요. 음.. 요즈음은 다들 agp 를 써서.. 저 pci bus mastering 이란 기술이 아직도 살아남아있는건지.. 잘 모르겠군요.
  • EcologicalBinPacking/황재선 . . . . 4 matches
         == EcologicalBinPacking ==
         #include <iostream>
         #include <string>
         #include <cmath>
         using namespace std;
         void input();
         void findMinCount();
         bool isMinValue(int aSum, int aMinValue);
         void output(int colorResult, int min);
         int bottle[9] = {0,};
         string color[6] = {"BCG", "BGC", "GBC", "GCB", "CBG", "CGB"};
         int colorIndex[6][3] = {{0,5,7}, {0,4,8}, {1,3,8}, {1,5,6}, {2,3,7}, {2,4,6}};
         int main()
          input();
          findMinCount();
         void input()
          int sum = 0;
          for(int i = 0; i < 9; i++)
          cin >> bottle[i];
          continue;
  • EightQueenProblem/최태호소스 . . . . 4 matches
         # include <stdio.h>
         # include <conio.h>
         # define SIZE 8
         int c;
         int Check(int in)
          int re=0;
          for(int i=c;i>0;i--){
          if((in-i)>=0 && P[c-i][in-i] ==1){//왼쪽으로..
          if( (in+i)<SIZE && P[c-i][in+i]==1 ){//오른쪽으로..
         int EQ()
          int re;
          for(int i=0;i<SIZE;i++){
          if(Q[i]==1) continue;// 그 줄에 queen 이있는것이므로 다음칸으로..
         void Init()
          for (int i=0;i<SIZE;i++){
          for(int j=0;j<SIZE;j++) P[i][j]=0;
          for(int i=0;i<SIZE;i++){
          for(int j=0;j<SIZE;j++)printf("%d ",P[i][j]);
          printf("\n");
         void main(void)
  • ExplicitInitialization . . . . 4 matches
         == Explicit Initialization ==
         초기화에 대해서는 딱히 정해진 좋은 방법이 없다.(상황에 따라 택일해서 쓰라는 말) 이 패턴은 유연성보다는 가독성을 중시한다. 모든 초기화를 하나의 메소드에 때려넣는 방법이다. 유연성은 떨어질 수 밖에 없다. 변수 하나 추가하자면 ExplicitInitialization 메소드를 수정해야만 한다는 것을 기억하고 있어야 하기 때문이다. ExplicitInitialization은 LazyInitialization보다 비용이 많이 든다. 모든 변수를 인스턴스가 생성될때 초기화 하기 때문이다.
         모든 변수들을 명시적으로 설정해주는 initialize메소드를 구현하라. new메세지를 오버라이딩해서 새로운 인스턴스에 맞게 하라.
          void initialize()
          int defaultMillisecondPeriod()
          initialize();
  • FocusOnFundamentals . . . . 4 matches
         '''Software Engineering Education Can, And Must, Focus On Fundamentals.'''
         When I began my EE education, I was surprised to find that my well-worn copy of the "RCA
         Tube Manual" was of no use. None of my lecturers extolled the virtues of a particular tube or type
         of tube. When I asked why, I was told that the devices and technologies that were popular then
         would be of no interest in a decade. Instead, I learned fundamental physics, mathematics, and a
         way of thinking that I still find useful today.
         Clearly, practical experience is essential in every engineering education; it helps the students to
         learn how to apply what they have been taught. I did learn a lot about the technology of that day in
         laboratory assignments, in my hobby (amateur radio), as well as in summer jobs, but the lectures
         taught concepts of more lasting value that, even today, help me to understand and use new
         Readers familiar with the software field will note that today's "important" topics are not
         The many good ideas that underlie these approaches and tools must be taught. Laboratory exercises
         and other projects should provide students with the opportunity to use the most popular tools and
         to experiment with some new ones. However, we must remember that these topics are today's
         replacements for earlier fads and panaceas and will themselves be replaced. It is the responsibility
         the fundamentals that will be valid and useful over that period and emphasise those principles in
         the lectures. Many programmes lose sight of the fact that learning a particular system or language
         is a means of learning something else, not an goal in itself.
         --David Parnas from [http://www.cs.utexas.edu/users/almstrum/classes/cs373/fall98/parnas-crl361.pdf Software Engineering Programmes Are Not Computer Science Programmes]
         Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them.
  • FromDuskTillDawn . . . . 4 matches
         [http://online-judge.uva.es/p/v101/10187.html 원문보기]
         === Input ===
         각 테스트 케이스에 대해 일단 테스트 케이스 번호를 출력한 다음, 그 다음 줄에 "Vladimir needs # litre(s) of blood." 또는 "There is no route Vladimir can take."를 출력한다 (출력 예 참조).
         === Sample Input ===
         Lugoj Reghin 17 4
         Sibiu Reghin 19 9
         Reghin Medias 20 4
         Reghin Bacau 24 6
         There is no route Vladimir can take.
  • GRASP . . . . 4 matches
         '''''이 내용은 Applying UML and Patterns CHAPTER 22 [GRASP]에서 얻어온 것입니다'''''
         == Information Expert ==
         == Low Coupling ==
          일관된 interface를 사용
         == Indirection ==
         그 외에 [DavidParnas]의 On the Criteria To Be Used in Decomposing Systems Into Modules에서 [InformationHiding] 개념을 소개했고 [DataEncapsulation]과 혼동하는 경우가 많았다고 말해주네요. [OCP]에 대해서도 이야기해 주고 ...
  • Gof/AbstractFactory . . . . 4 matches
         === Intent ===
          * AbstractProduct(Window, ScrollBar)
          * ConcreteProduct(MotifWindow, MotifScrollBar)
          * 추상 인터페이스(ProductInterface)를 수행한다.
          InterViews 는 AbstractFactory 클래스들을 나타내기 위해서 'Kit'를 접미사로 사용한다. 이것은 WidgetKit과 DialogKit abstract factory 들을 명확한 ["룩앤필"] UI 객체를 위해서 정의한다. InterViews는 또한 서로 다른 복합 객체를 생성하는 LayoutKit 을 포함다. 예를 들면, 어떤 layout은 문서의 방향(인물이나 풍경)에 따른 서로 다른 복합 객체를 개념적으로 정렬한다.
          ET++[WGM88]은 다른 윈도우 시스템(예를 들면, X Windows 와 SunViews)간의 호환을 수행하기 위해서 Abstract Factory 패턴을 사용했다. 윈도우 시스템의 추상 base 클래스는 윈도우시스템의 자원 객체(예를 들면, MakeWindow, MakeFont, MakeColor)를 생성할 수 있는 인터페이스를 정의한다. Concrete 서브 클래스는 특정 윈도우 시스템에 인터페이스를 수행한다.
  • Gof/Facade . . . . 4 matches
         == Intent ==
         예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
          * 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
         서브시스템은 인터페이스를 가진다는 점과 무엇인가를 (클래스는 state와 operation을 캡슐화하는 반면, 서브시스템은 classes를 캡슐화한다.) 캡슐화한다는 점에서 class 와 비슷하다. class 에서 public 과 private interface를 생각하듯이 우리는 서브시스템에서 public 과 private interface 에 대해 생각할 수 있다.
         서브시스템으로의 public interface는 모든 클라이언트들이 접속가능한 클래스들로 구성되며. 이때 서브시스템으로의 private interface는 단지 서브시스템의 확장자들을 위한 인터페이스이다. 따라서 facade class는 public interface의 일부이다. 하지만, 유일한 일부인 것은 아니다. 다른 서브시스템 클래스들 역시 대게 public interface이다. 예를 들자면, 컴파일러 서브시스템의 Parser class나 Scanner class들은 public interface의 일부이다.
          istream& _inputStream;
          virtual void GetSourcePosition (int& line, int& index);
         Traverse operaton은 CodeGenerator 객체를 인자로 취한다. ProgramNode subclass들은 BytecodeStream에 있는 Bytecode객체들을 machine code로 변환하기 위해 CodeGenerator 객체를 사용한다. CodeGenerator 클래는 visitor이다. (VisitorPattern을 참조하라)
         CodeGenerator 는 subclass를 가진다. 예를들어 StackMachineCodeGenerator sk RISCCodeGenerator 등. 각각의 다른 하드웨어 아키텍처에 대한 machine code로 변환하는 subclass를 가질 수 있다.
         우리가 토론해온 클래스들은 곧 Compiler 서브시스템을 이룰 것이다. 자 이제 우리는 이 모든 조각들을 함께 묶은 facade 인 Compiler 클래스를 소개할 것이다. Compiler는 소스 컴파일과 특정 machine에 대한 코드변환기능에 대한 단순한 인터페이스를 제공한다.
          istream& input, BytecodeStream& output
          Scanner scanner (input);
         이 구현에서는 사용하려는 code-generator의 형태에 대해서 hard-codes (직접 특정형태 부분을 추상화시키지 않고 바로 입력)를 했다. 그렇게 함으로서 프로그래머는 목적이 되는 아키텍처로 구체화시키도록 요구받지 않는다. 만일 목적이 되는 아키텍처가 단 하나라면 그것은 아마 이성적인 판단일 것이다. 만일 그러한 경우가 아니라면 우리는 Compiler 의 constructor 에 CodeGenerator 를 인자로 추가하기 원할 것이다. 그러면 프로그래머는 Compiler를 instance화 할때 사용할 generator를 구체화할 수 있다. Compiler facade는 또한 Scanner나 ProgramNodeBuilder 등의 다른 협동하는 서브시스템클래스를 인자화할 수 있다. 그것은 유연성을 증가시키지만, 또한 일반적인 사용형태에 대해 인터페이스의 단순함을 제공하는 Facade pattern의 의의를 떨어뜨린다.
         ET++ application framework [WGM88] 에서, application은 run-time 상에서 application의 객체들을 살필 수 수 있는 built-in browsing tools를 가지고 있다.이러한 browsing tools는 "ProgrammingEnvironment'라 불리는 facade class를 가진 구분된 서브시스템에 구현되어있다. 이 facade는 browser에 접근 하기 위한 InspectObject나 InspectClass같은 operation을 정의한다.
         ET++ application은 또한 built-in browsing support를 없앨수도 있다. 이러한 경우 ProgrammingEnvironment는 이 요청에 대해 null-operation으로서 구현한다. 그러한 null-operation는 아무 일도 하지 않는다. 단지 ETProgrammingEnvironment subclass는 각각 대응하는 browser에 표시해주는 operation을 가지고 이러한 요청을 구현한다. application은 browsing environment가 존재하던지 그렇지 않던지에 대한 정보를 가지고 있지 않다. application 과 browsing 서브시스템 사이에는 추상적인 결합관계가 있다.
         Choices operating system [CIRM93] 은 많은 framework를 하나로 합치기 위해 facade를 사용한다. Choices에서의 key가 되는 추상객체들은 process와 storge, 그리고 adress spaces 이다. 이러한 각 추상객체들에는 각각에 대응되는 서브시스템이 있으며, framework로서 구현된다. 이 framework는 다양한 하드웨어 플랫폼에 대해 Choices에 대한 porting을 지원한다. 이 두 서브시스템은 '대표자'를 가진다. (즉, facade) 이 대표자들은 FileSystemInterface (storage) 와 Domain (address spaces)이다.
         예를 들어, 가상 메모리 framework는 Domain을 facade로서 가진다. Domain은 address space를 나타낸다. Domain은 virtual addresses 와 메모리 객체, 화일, 저장소의 offset에 매핑하는 기능을 제공한다. Domain의 main operation은 특정 주소에 대해 메모리 객체를 추가하거나, 삭제하너가 page fault를 다루는 기능을 제공한다.
          RepairFault 명령은 page fault 인터럽트가 일어날때 호출된다. Domain은 fault 를 야기시킨 주소의 메모리객체를 찾은뒤 RepairFault에 메모리객체과 관계된 캐쉬를 위임한다. Domain들은 컴포넌트를 교체함으로서 커스터마이즈될 수 있다.
         보통 facade는 단일 오브젝트로 요구된다. 그래서Facade 객체는 종종 SingletonPattern으로 구현된다.
  • Gof/Strategy . . . . 4 matches
         == Intent ==
         텍스트 스트림을 줄 단위로 나누는 많은 알고리즘들이 있다. (이하 linebreaking algorithm). 해당 알고리즘들이 그것을 필요로 하는 클래스에 긴밀하게 연결되어있는 것은 여러가지 이유 면에서 바람직하지 못하다.
          * linebreaking이 필요한 클라이언트이 그 알고리즘을 직접 포함하고 있는 경우에는 클라이언트들이 더 복잡해질 수 있다. 이는 클라이언트들을 더 커지거나 유지가히 힘들게 한다. 특히 클라이언트가 여러 알고리즘을 제공해야 하는 경우에는 더더욱 그렇다.
          * linebreaking이 클라이언트코드의 일부인 경우, 새 알고리즘을 추가하거나, 기존 코드를 확장하기 어렵다.
         이러한 문제는, 각각의 다른 linebreaking을 캡슐화한 클래스를 정의함으로 피할 수 있다. 이러한 방법으로 캡슐화한 알고리즘을 stretegy 라 부른다.
         Composition 클래스는 text viewer에 표시될 텍스틀 유지하고 갱신할 책임을 가진다고 가정하자. Linebreaking strategy들은 Composition 클래스에 구현되지 않는다. 대신, 각각의 Linebreaking strategy들은 Compositor 추상클래스의 subclass로서 따로 구현된다. Compositor subclass들은 다른 streategy들을 구현한다.
          * TexCompositor - linebreaking 에 대해 TeX 알고리즘을 적용, 구현한다. 이 방법은 한번에 문단 전체에 대해서 전반적으로 linebreak를 최적화하려고 한다.
          * subclassing 의 대안
          int _componentCount;
          int _lineWidth;
          int* _lineBreaks;
          int _lineCount;
          virtual int Compose (
          Coord natural[], Coord stretch[], Coord shrink[],
          int componentCount, int lineWidth, int breaks[]
          Coord* shrinkability;
          int componentCount;
          int* breaks;
          // prepare the arrays with the desired component sizes
          // determine where the breaks are:
  • GofStructureDiagramConsideredHarmful . . . . 4 matches
          * 원문 : http://www.industriallogic.com/pulse/20001001.html
         There's a mistake that's repeated throughout the Design Patterns book, and unfortunately, the mistake is being repeated by new patterns authors who ape the GoF style.
         Each GoF pattern has a section called "Structure" that contains an OMT (or for more recent works, UML) diagram. This "Structure" section title is misleading because it suggests that there is only one Structure of a Pattern, while in fact there are many structures and ways to implement each Pattern.
         But inexperienced Patterns students and users don't know this. They read the Patterns literature too quickly, often thinking that they understand a Pattern merely by understanding it's single "Structure" diagram. This is a shortcoming of the GoF Form, one which I believe is harmful to readers.
         What about all those important and subtle Implementation notes that are included with each GoF Pattern? Don't those notes make it clear that a Pattern can be implemented in many ways? Answer: No, because many folks never even read the Implementation notes. They much prefer the nice, neat Structure diagrams, because they usually only take up a third of a page, and you don't have to read and think a lot to understand them.
         Diagrams are seductive, especially to engineers. Diagrams communicate a great deal in a small amount of space. But in the case of the GoF Structure Diagrams, the picture doesn't say enough. It is far more important to convey to readers that a Pattern has numerous Structures, and can be implemented in numerous ways.
         I routinely ask folks to add the word "SAMPLE" to each GoF Structure diagram in the Design Patterns book. In the future, I'd much prefer to see sketches of numerous structures for each Pattern, so readers can quickly understand that there isn't just one way to implement a Pattern. But if an author will take that step, I'd suggest going even further: loose the GoF style altogether and communicate via a pattern language, rich with diagrams, strong language, code and stories.
  • Hartals/상협재동 . . . . 4 matches
         #include <iostream>
         using namespace std;
         int term;
         int numberOfHartal;
         int hartal[100] = {0,};
         int strike[3650] = {0,};
         int totalStrike[100] = {0,};
         void input();
         void process(int num);
         void output(int testCase);
         void arrayInit(int* array, int arrayNum);
         void arrayInit(int* array, int arrayNum)
          for(int i = 0; i < arrayNum; i++)
         void main()
          int testCase;
          cin >> testCase;
          for(int i = 0; i < testCase; i++)
          arrayInit(hartal, 100);
          arrayInit(strike, 3650);
          input();
  • ISAPI . . . . 4 matches
          * IIS(Internet Information Services)란 웹 서버, FTP 서버와 같이 기본적이고 범용적인 인터넷 서비스를 시스템에서 제공할 수 있게 해주는 소프트웨어를 말한다. 기존 윈도우2000 제품군의 경우 기본적으로 IIS 5.0을 제공하였고 윈도우XP의 기존 IIS 5.0의 기능을 개선한 IIS 5.1을 제공하고 있다. 한 마디로 HTTP, FTP, SMTP 서버의 묶음이다.
          프로그래 추가/제거 -> Windows 구성 요소 추가/제거 -> 인터넷 정보 서비스(IIS)
         Internet Server Application Programming Interface 의 약자로 개발자에게 IIS 의 기능을 확장할 수 있는 방법을 제공한다. 즉, IIS 가 이미 구현한 기능을 사용해서 개발자가 새로운 기능을 구현할 수 있는 IIS SDK 다. 개발자는 ISAPI 를 이용해서 Extensions, Filters 라는 두 가지 형태의 어플리케이션을 개발할 수 있다.
          * High Performance : outperform any other web application technology. (ASP, servser-side component)
          * Low-Level Control : access to the whole array of Win32 API or 3rd party API
          * Development requires more time : written in C or C++
          * Scailability gains are not necessarily automatic : runs faster than others but there is no guarantee of perfect scalability
          * ISAPI operates below helpful IIS infrastructure : helpful programming abstractions are absent. (ex: session )
  • IntelliJUIDesigner . . . . 4 matches
         [IntelliJ] 에 추가되는 GUI Designer. 여기서의 설명은 EAP 963 기준.
         [IntelliJ] 의 UI Designer 의 특징이라면, 좌표나 레이아웃관련 정보를 따로 XML 화일에 저장한다는 점이다. 그리고 우리가 작성하는 소스 코드 에서는 각 컨트롤 객체들의 레퍼런스 변수들 간 연결관계를 쓴다. 코드가 꽤 깔끔하다.
         단점이라면, 아직 개발이 계속 진행중이여서 완전하지 않다는 점. Swing Control 중 아직 UI Palette 에 없는 것들도 있고, 레퍼런스 변수와 binding 하는 방법도 약간 복잡한 감이 있다.
         forms_rt.jar 화일이 필요하다. 이는 IntelliJ 의 lib 디렉토리에 있다.
         Upload:intellijui_new.gif
         Upload:intellijui_uidesigner.gif
         === Layouting ===
         Upload:intellijui_layout1.gif
         Upload:intellijui_layout2.gif
         Upload:intellijui_layout3.gif
         Upload:intellijui_layout4.gif
         === binding 할 클래스 설정 ===
         Upload:intellijui_variable.gif
         Upload:intellijui_bindvariable.gif
         Upload:intellijui_bindclassdlg.gif
         Upload:intellijui_bindclass.gif
         Upload:intellijui_writemore.gif
         Upload:intellijui_output.gif
         Upload:intellijui_writeaction.gif
         [IntelliJ]
  • JTDStudy/첫번째과제/상욱 . . . . 4 matches
         import javax.swing.JOptionPane;
          private String resultNumber;
          private String userNumber;
          public static void main(String[] args) {
          // input number from user
          inputNumber();
          public String inputNumber() {
          return userNumber = JOptionPane.showInputDialog(null, "Enter number what you think");
          String fstNum, secNum, trdNum;
          public String checkScore() {
          int numOfStrike = 0;
          int numOfBall = 0;
          for (int i = 0 ; i < 3 ; i++) {
          for (int j = 0 ; j < 3 ; j++) {
          public void setResultNumber(String resultNumber) {
          public String getUserNumber() {
          public String getResultNumber() {
          public void testInputNumber() {
          String testString = object.inputNumber();
          if (testString.charAt(0) == '1' &&
  • Java/CapacityIsChangedByDataIO . . . . 4 matches
         재미로 보는 ["Java"] Container Capacity 변화
         capacity 정보를 제공하는 것이 {{{~cpp StringBuffer }}}, Vector 밖에 없다. 다른 것들을 볼려면 상속받아서 내부 인자를 봐야 겠다.
         Show String Buffer capactity by Data I/O in increment
         Show String Buffer capactity by Data I/O in decrement
         Show Vector capactity by Data I/O in increment
         Show String Buffer capactity by Data I/O in decrement
         import java.io.PrintStream;
         import java.io.PrintWriter;
          private static final int NUMBER_LIMIT_LEN = 10;
          private PrintStream out;
          private PrintWriter k;
          private int totalNumOfData = 1000000;
          public static void main(String[] args) {
          capacity.testStringBuffer();
          public CapacityTest(PrintStream anOut) {
          throw new NullPointerException("out is null");
          public void testStringBuffer() {
          StringBuffer stringBuffer = new StringBuffer();
          showStringBufferIncrease(stringBuffer);
          showStringBufferDecrease(stringBuffer);
  • JavaStudy2003/세번째과제/노수민 . . . . 4 matches
         import javax.swing.JOptionPane;
          public String word="Hello, World!";
          public void setName(String name) {
          public static void main() {
         //Line.java
         import javax.swing.*;
         public class Line {
          private Point p1 = new Point();
          private Point p2 = new Point();
          private String info = "";
          public Line() {
          public void setData(int p1_xValue, int p1_yValue, int p2_xValue, int p2_yValue) {
          public void setInfo() {
          info += "Line point_1 x : " + p1.getX() + "\n" +
          "Line point_1 y : " + p1.getY() + "\n" +
          "Line point_2 x : " + p2.getX() + "\n" +
          "Line point_2 y : " + p2.getY() + "\n";
          setInfo();
          JOptionPane.showMessageDialog(null, info);
          public void move(int xValue, int yValue) {
  • Lines In The Plane . . . . 4 matches
         ==== Recurrent Problems - Lines In The Plane ====
         What is the maximum number L<sub>n</sub> of regions defined by lines("unfolding" or "unwinding") in the plane?
         ===== mathematical expression =====
  • MajorMap . . . . 4 matches
         It's related ProgrammingLanguage, DigitalLogicDesign(, and...)
         == Instructions:language of the Computer ==
         Keywords are InstructionSetArchitecture, Register, Memory, Address(,and...)
         InstructionSetArchtecture(ISA) is an abstract interface between the hardware and the lowest-level sogtware. Also called simply architecture.
         Registers are a limited number of special locations built directly in hardware. On major differnce between the variables of a programming language and registers is the limited number of registers, typically 32(64?) on current computers.
         Memory is the storage area in which programs are kept when they are runngin and that contains the data needed by the running programs. Address is a value used to delineate the location of a specific data element within a memory array.
         ALU is is a part of the execution unit, a core component of all CPUs. ALUs are capable of calculating the results of a wide variety of basic arithmetical computations such as integer and floating point arithmetic operation(addition, subtraction, multiplication, and division), bitwise logic operation, and bit shitf operation. Therefore the inputs to the ALU are the data to be operated on (called operands) and a code from the control unit indicating which operation to perform. Its output is the result of the computation.--from [http://en.wikipedia.org/wiki/ALU]
         Two's complement is the most popular method of representing signed integers in computer science. It is also an operation of negation (converting positive to negative numbers or vice versa) in computers which represent negative numbers using two's complement. Its use is ubiquitous today because it doesn't require the addition and subtraction circuitry to examine the signs of the operands to determine whether to add or subtract, making it both simpler to implement and capable of easily handling higher precision arithmetic. Also, 0 has only a single representation, obviating the subtleties associated with negative zero (which is a problem in one's complement). --from [http://en.wikipedia.org/wiki/Two's_complement]
         A Gray code is a binary numeral system where two successive values differ in only one digit. --from [http://en.wikipedia.org/wiki/Gray_code]
  • ModelViewPresenter . . . . 4 matches
         TwistingTheTriad
         ConnectingTheDots
          * Model - domain data
          * Interactor - 키보드나 마우스 이벤트들을 Command 나 Selection 으로 매핑한다.
         Model-View-Presenter or MVP is a next generation programming model for the C++ and Java programming languages. MVP is based on a generalization of the classic MVC programming model of Smalltalk and provides a powerful yet easy to understand design methodology for a broad range of application and component development tasks. The framework-based implementation of these concepts adds great value to developer programs that employ MVP. MVP also is adaptable across multiple client/server and multi-tier application architectures. MVP will enable IBM to deliver a unified conceptual programming model across all its major object-oriented language environments.
  • MoniWikiOptions . . . . 4 matches
         `'''$theme='테마이름';'''`
          * 테마를 지정한다. See also MoniWikiTheme
         `'''$theme_css'''`
          * 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'` $theme를 설정한 경우는 이 값이 자동 설정된다.
         `'''$logo_string= '<img src="'.$logo_img.'" alt="" border="0" align="middle" />';'''`
         `'''$menu=array('MoniWiki'=>1,'FindPage'=>4,'TitleIndex'=>3,'BlogChanges'=>'','RecentChanges'=>2,'http://kldp.org KLDP'=>9);'''`
         `'''$auto_linebreak'''`
          * Email Notification을 활성화 한다. 이 기능을 키면 SubscribePlugin을 사용할 수 있다.
         `'''$use_twinpages'''`
          * nolink: 아무표시도 하지 않음
          * forcelink:무조건 전체 링크
         ''$inline_latex='latex'`
          * inline latex문법을 활성화하거나 끈다. latex, mimetex, itex 등등 지원 LatexProcessor
         `'''$intermap'''`
          * 기본값 `$data_dir.'/intermap.txt'`
         `'''$shared_intermap'''`
          * 기본값은 `$data_dir."/text/InterMap"`
          * rcs를 ~/bin같은 곳에 설치할 때 이 변수에 path를 지정한다 예를 들어 `/usr/local/bin:/usr/bin`
          * 윈도우즈 환경이라면 {{{$path='./bin;c:/program files/vim/vimXX';}}}와 같은 식으로 설정한다.
          * (monisetup.php에 의해 자동 결정된다) apache2를 쓸 경우는 '?'를 쓰거나, `AcceptPathInfo on`를 쓰고 '/'로 지정한다.
  • MoniWikiTheme . . . . 4 matches
          * '''include'''로 처리된다.
         === 임의의 Theme 설정 및 지원 ===
         http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=kz
         http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=blog
         http://chemie.skku.ac.kr/wiki/wiki.php/TwinPages?action=theme&theme=samplehome
         {{{[[Theme]]}}}매크로를 이용하여 지원 가능한 Theme목록을 볼 수 있다.
         [[Theme]]
  • NSIS/예제4 . . . . 4 matches
         !include "MUI.nsh"
         !include "servicelib.nsh"
         ShowInstDetails show
         InstallDir $PROGRAMFILES\RealVNC\VNC4
         ;WindowIcon on
         InstallButtonText "설치"
         AutoCloseWindow false
         ShowInstDetails show
         ShowUninstDetails show
          SetDetailsPrint both
          SetOutPath $INSTDIR
          !insertmacro SERVICE "stop" "WinVNC4" ""
          File "winvnc4.exe"
          !insertmacro SERVICE "start" "WinVNC4" ""
  • OOP . . . . 4 matches
         '''Object Oriented Programming''' : 객체 지향 프로그래밍. ~~객체를 지향하는 프로그래밍입니다.~~이 이전에 Object Based Progamming 것이 있었다.이 다음 세대의 프로그래밍 기법은 GenericProgramming이라고 이야기된다.
         === Definition ===
         Object-oriented programming is based in the principle of recursive design.
         1. Everything is an object.
         2. Objects perform computation by making requests of each other through the passing of messages.
         3. Every object has it's own memory, which consists of other objects.
         4. Every object is an instance of a class. A class groups similar objects.
         5. The class is the repository for behabior associated with an object.
         6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy.
         It’s a natural way for people to ”think in objects”.
         Program consists of objects interacting with eachother Objects provide services.
         Easier to maintain
          * [Instance]
          * [Inheritance](상속)
          * [Interface]
          * [Generic programming]
         === Basic rules to define objects ===
  • OurMajorLangIsCAndCPlusPlus/print/하기웅 . . . . 4 matches
         #include <iostream>
         #include <stdarg.h>
         #include <stdlib.h>
         using namespace std;
         int decimal, sign;
         #define limit 5
         #define IntSize 12
         void print(char *n, ...)
          char st[IntSize];
          itoa(va_arg(l,int), st, 10);
          for(int i=0; i<(number-48-strlen(st)); i++)
          for(int k=decimal+limit; k>=0; k--)
          char st[IntSize];
          itoa(va_arg(l,int), st, 10);
          for(int k=decimal+limit; k>=0; k--)
          int *number = va_arg(l,int*);
          int count = va_arg(l, int);
          for(int i=0; i<count; i++)
          char st[IntSize];
          int count = va_arg(l, int);
  • PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 4 matches
         || [PragmaticVersionControlWithCVS/AccessingTheRepository] || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
         == Checking Things Out ==
         cvs checkout: Updating sesame
         cvs checkout: Updating sesame2
         cvs checkout: Updating sesame2/sesame2
         cvs checkout: Updating sesame2/sesame2/templates
         cvs log: Logging sesame
         Working file: sesame/color.txt
          initial: 1.1.1.1
         date: 2005-08-02 13:16:58 +0000; author: sapius; state: Exp; lines: +4 -0
         Initial revision
         date: 2005-08-02 05:50:14 +0000; author: sapius; state: Exp; lines: +0 -0
         cvs checkout: Updating sesame
         || Relative || 1 day ago [[HTML(<BR/>)]] 27 minutes ago [[HTML(<BR/>)]] last monday [[HTML(<BR/>)]] yesterday [[HTML(<BR/>)]] third week ago ||
         == Keeping Up To Date ==
         cvs update: Updating template
         cvs update: Updating .
         cvs update: Updating template
         cvs server: Updating .
         retrieving revision 1.16
  • PreviousFrontPage . . . . 4 matches
         A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. This wiki is also part of the InterWiki space.
         MoinMoin is a Python WikiClone, based on PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoinWikis page.
         You are encouraged to add to the MoinMoinIdeas page, and edit the WikiSandBox whichever way you like. Please try to restrain yourself from adding unrelated stuff, as I want to keep this clean and part of the project documentation.
         You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
         To learn more about what a WikiWikiWeb is, read about WhyWikiWorks and the WikiNature. Also, consult the WikiWikiWebFaq.
         Interesting starting points:
          * RecentChanges: see where people are currently working
          * HelpForBeginners: to get you going
          * WikiSandBox: feel free to change this page and experiment with editing
          * MoinMoinTodo: discussion about the improvement of MoinMoin
          * FindPage: search or browse the database in various ways
  • ProgrammingLanguageClass/2006/Report3 . . . . 4 matches
         C supports two kinds of parameter passing mode, pass-by-value and pass-byreference,
         but not pass-by-name. A technique for implementing pass-by-name is to
         treat the actual parameters as thunks. Whenever a formal parameter is referenced in a
         subprogram, the corresponding thunk compiled for that parameter is executed. Even
         though it is difficult to avoid run-time overhead in the execution of thunks, sometimes it
         provides a very powerful feature for some applications like a generic summation routine.
         Suppose that whenever a programmer wants to pass a parameter by name in C, it is
         required to prefix the keyword name just in front of both the actual and formal
         Of course, if a C program with the call statement above is to be compiled by a
         conventional compiler, syntax errors should occur since it violates the syntactical rules
         You are required to implement C preprocessor that supports the pass-by-name
         parameter-passing method. The preprocessor should transform C programs with name
         parameters into pure C programs so that the transformed programs manage to handle
         parameters prefixed with name as if they were called by name without causing any
         properly by testing it for various summation below.
         by passing parameters by name.
         3) You have to show off the robustness of your program by checking various
         Jensen's Machine 은 Jørn Jensen라는 사람이 Algol 60을 제안하는 보고서에서 제시한 프로그래밍 테크닉을 말합니다.
          begin integer i;
          value lo, hi; integer i, lo, hi; real term;
  • PyIde/Scintilla . . . . 4 matches
         http://scintilla.org/ScintillaDoc.html
         http://wiki.wxpython.org/index.cgi/wxStyledTextCtrl
         Scintilla 관련 참조 도큐먼트들. (Refactoring 필요)
         === syntax hilighting 셋팅 ===
         Boa Constructor 나 Pythoncard, wxPython 의 samples 의 StyleEditor 등을 보면 STCStyleEditor 모듈이 있다. 이 모듈에서 initSTC 함수를 사용하면 된다.
         finally:
         LineFromPosition(aPos)
         SetSavePoint()
         SetSavePoint()
         GotoLine(lineNum - 1)
         LineFromPosition(sel[0])
         LineFromPosition(sel[1])
         BeginUndoAction()
         firstChar = PositionFromLine(lineNumber)
         InsertText(firstChar, "##")
         SetCurrentPos(PositionFromLine(start))
         SetAnchor(GetLineEndPosition(end))
         DelLineLeft()
         SetIndentationGuides(boolean)
         SetEdgeMode(stc.wxSTC_EDGE_LINE)
  • RandomWalk2/TestCase . . . . 4 matches
         Input
         Input
         Input
         Input
  • SmallTalk/강좌FromHitel/소개 . . . . 4 matches
         있습니다. Dolphin Smalltalk 98을 만든 Object Arts라는 회사가 쓴 "Dolphin
         고 있으며, 필자가 자료실에 올린 Dolphin Smalltalk 역시 그런 훌륭한 개발 환
         의 장벽을 가지고 있었습니다. Dolphin Smalltalk는 이러한 장벽들을 뛰어넘어서
         니다. 이는 비단 Dolphin Smalltalk만이 아니라, 널리 사용되고 있는 VisualAge
         속도에 대해서 이야기할 때 수행 속도(running performance)와 더불어 빠질 수
         Dolphin Smalltalk와 Delhi에서 원소수가 200만개인 배열 변수에서 어떤 값을 찾
          Data: array[1 .. 2000000] of Integer;
          i, Key: Integer;
         begin
          begin
          if Data[i] = key then
          begin
          ShowMessage( IntToStr(i) );
          ^MessageBox notify: i displayString
         있으며, Dolphin Smalltalk의 경우에도 상용 제품과 공개용 제품을 같이 내놓고
         있습니다. 또한 Dolphin Smalltalk 상용판의 경우는 약 $50 정도의 가격으로 충
         그러나 Dolphin Smalltalk의 경우는 보통 구현되는 Smalltalk의 특성보다 한 단
         우 낮게 할 수 있었으며, 이는 Dolphin Smalltalk가 다른 Smalltalk에 비해서 월
         니다.) 그러나 Dolphin Smalltalk의 경우에는 기본적으로 약 3%의 자원을 소비합
         공간의 점유율입니다. (보통 배포되는 Dolphin Smalltalk에는 약 540개의 갈래와
  • SmallTalk_Introduce . . . . 4 matches
         있습니다. Dolphin Smalltalk 98을 만든 Object Arts라는 회사가 쓴 "Dolphin
         고 있으며, 필자가 자료실에 올린 Dolphin Smalltalk 역시 그런 훌륭한 개발 환
         의 장벽을 가지고 있었습니다. Dolphin Smalltalk는 이러한 장벽들을 뛰어넘어서
         니다. 이는 비단 Dolphin Smalltalk만이 아니라, 널리 사용되고 있는 VisualAge
         속도에 대해서 이야기할 때 수행 속도(running performance)와 더불어 빠질 수
         Dolphin Smalltalk와 Delhi에서 원소수가 200만개인 배열 변수에서 어떤 값을 찾
          Data: array[1 .. 2000000] of Integer;
          i, Key: Integer;
         begin
          begin
          if Data[i] = key then
          begin
          ShowMessage( IntToStr(i) );
          ^MessageBox notify: i displayString
         있으며, Dolphin Smalltalk의 경우에도 상용 제품과 공개용 제품을 같이 내놓고
         있습니다. 또한 Dolphin Smalltalk 상용판의 경우는 약 $50 정도의 가격으로 충
         그러나 Dolphin Smalltalk의 경우는 보통 구현되는 Smalltalk의 특성보다 한 단
         우 낮게 할 수 있었으며, 이는 Dolphin Smalltalk가 다른 Smalltalk에 비해서 월
         니다.) 그러나 Dolphin Smalltalk의 경우에는 기본적으로 약 3%의 자원을 소비합
         공간의 점유율입니다. (보통 배포되는 Dolphin Smalltalk에는 약 540개의 갈래와
  • StacksOfFlapjacks/이동현 . . . . 4 matches
         #include <iostream>
         using namespace std;
          int* cake; //케이크들
          int arr_size; //케익 개수
          void flip(int n){ //n번에다가 주걱 넣고 뒤집어!
          int k = (arr_size-n+1)/2;
          for(int i=0; i<k; i++){
          int searchBigIndex(int end){ //0~end index까지 검사하여 가장 큰 수의 index리턴.
          int big_index=0;
          for(int i=1;i<=end;i++){
          if(cake[big_index]<cake[i])
          big_index = i;
          return big_index;
          for(int i=1;i<arr_size;i++){
          void run(int*arr, int size){
          for(int j=arr_size-1, n=1;j>=0;j--, n++){
          if(searchBigIndex(j)==j) //제일 큰 케익이 놓일자리에 이미 놓여있다면 다음뒤집기로.
          continue;
          if(searchBigIndex(j)!=0) //맨위에 제일큰케익이 있으면 뒤집을 필요가 없다.
          flip(arr_size-searchBigIndex(j));
  • Star/조현태 . . . . 4 matches
         <embed src="http://zerowiki.dnip.net/~undinekr/lunia_ost1.mp3">
         [DeadLink]
         #include <iostream>
         #include <map>
         #include <vector>
         #include <algorithm>
         using namespace std;
         #define FALSE 0
         #define TRUE 1
         struct SavePoint{
          int x;
          int y;
          int z;
          SavePoint(int inputX, int inputY, int inputZ)
          x = inputX;
          y = inputY;
          z = inputZ;
          bool operator == (const SavePoint& target) const
          bool operator < (const SavePoint& target) const
         map<SavePoint, int>points;
  • StringOfCPlusPlus/세연 . . . . 4 matches
         #include <iostream>
         using namespace std;
         #include <fstream>
          int count;
          void InsertWord(char *, node *);
          char line[300];
          file.getline(line, 300);
          cout << line << "\n";
          word = strtok(line, " .");
          InsertWord(word, temphead);
          InsertWord(word, temphead);
         void SearchWord::InsertWord(char * word, node * root)
         int main()
         ["StringOfCPlusPlus"]
  • StructuredText . . . . 4 matches
         Structured text is text that uses indentation and simple
         symbology to indicate the structure of a document. For the next generation of structured text, see [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here].
         A structured string consists of a sequence of paragraphs separated by
         one or more blank lines. Each paragraph has a level which is defined
         as the minimum indentation of the paragraph. A paragraph is a
         sub-paragraph of another paragraph if the other paragraph is the last
         preceding paragraph that has a lower level.
         Special symbology is used to indicate special constructs:
          * A single-line paragraph whose immediately succeeding paragraphs are lower level is treated as a header.
          * A paragraph that begins with a '-', '*', or 'o' is treated as an unordered list (bullet) element.
          * A paragraph that begins with a sequence of digits followed by a white-space character is treated as an ordered list element.
          * A paragraph that begins with a sequence of sequences, where each sequence is a sequence of digits or a sequence of letters followed by a period, is treated as an ordered list element.
          * A paragraph with a first line that contains some text, followed by some white-space and '--' is treated as a descriptive list element. The leading text is treated as the element title.
          * Sub-paragraphs of a paragraph that ends in the word 'example' or the word 'examples', or '::' is treated as example code and is output as is.
          * Text enclosed single quotes (with white-space to the left of the first quote and whitespace or puctuation to the right of the second quote) is treated as example code.
          * Text surrounded by '*' characters (with white-space to the left of the first '*' and whitespace or puctuation to the right of the second '*') is emphasized.
          * Text surrounded by '**' characters (with white-space to the left of the first '**' and whitespace or puctuation to the right of the second '**') is made strong.
          * Text surrounded by '_' underscore characters (with whitespace to the left and whitespace or punctuation to the right) is made underlined.
          * Text encloded by double quotes followed by a colon, a URL, and concluded by punctuation plus white space, *or* just white space, is treated as a hyper link. For example:
          Is interpreted as '<a href="http://www.zope.org/">Zope</a> is ....'
  • SystemPages . . . . 4 matches
         [[SystemInfo]]
          * TitleIndex - 제목으로 페이지들 목록 보기
          * FindPage - 페이지 찾기
          * InterWiki - 직접링크를 걸 수 있는 InterWiki들.
  • TAOCP . . . . 4 matches
          * Title : TheArtOfComputerProgramming
          * My Point
          * TheArtOfComputerProgramming(TAOCP) vol1. FundamentalAlgorithms을 읽는다.
         == Link ==
         [TAOCP/NotesOnTheExercises]
         [TAOCP/InformationStructures]
         책사야겠네... [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=199711260004 강컴]보다 싼 데 있으면 알려줘~~
  • TheElementsOfProgrammingStyle . . . . 4 matches
         TheElementsOfStyle 에 대한 글을 이곳 저곳에서 보면 항상같이 언급되는 책이다. 중앙도서관에 구입신청을 했지만 폐간되어서 입수를 못하고.. 아마존에는 brandnew는 없고 used book만 있다. 각 대학 중앙도서관을 뒤지던 중 연세대와 한양대 중앙도서관에 있음을 알게됨. 우리학교엔 왜 없었던 걸까.
          학생들이 TheElementsOfProgrammingStyle 을 공부하면서 TheElementsOfStyle을 언급하였으면 좋겠다. - [임인택]
         음 저자이름이 낯익어 기억을 더듬어봤더니, 제가 생각하던 [http://www.cs.princeton.edu/~bwk/ 그분]이 맞네요. [http://www-2.cs.cmu.edu/~mihaib/kernighan-interview/ 인터뷰]를 읽은적이 있는데... 나머지 한분은 누구일까요..? - [임인택]
         P.J. Plauger라고 역시 유명인. C와 C++ 표준화에 많은 업적을 남겼다. 2004년도 닥터 도브스 저널(DrDobbsJournal)에서 주는 Excellence In Programming Award 수상. --JuNe
  • TheGrandDinner/조현태 . . . . 4 matches
         == TheGrandDinner/조현태 ==
         #include <iostream>
         #include <vector>
         #include <algorithm>
         #include <numeric>
         using namespace std;
         #define TRUE 1
         #define FALSE 0
         const char DEBUG_INPUT[] = "4 5\n4 5 3 5\n3 5 2 6 4\n4 5\n4 5 3 5\n3 5 2 6 3\n0 0\n";
          SNumberAndPosition(int inputNumber, int inputPosition)
          number = inputNumber;
          position = inputPosition;
          int number;
          int position;
         char* InputBaseData(char* readData, vector<SNumberAndPosition>& tableSize, vector<SNumberAndPosition>& teamSize)
          int numberOfTable = 0;
          int numberOfTeam = 0;
          int buffer;
          for (register int i = 0; i < numberOfTeam; ++i)
          for (register int i = 0; i < numberOfTable; ++i)
  • TheJavaMan/테트리스 . . . . 4 matches
          int blockType;
          int []blockX;
          int []blockY;
          int blockDirection;
          int delayTime;
          public void init() {
          blockX = new int[4];
          blockY = new int[4];
          blockType = Math.abs(r.nextInt() % 7);
          for(int i=0;i<12;i++) {
          for(int j=0;j<21;j++) {
          for(int i=0;i<4;i++) {
          for(int i=0;i<12;i++) {
          for(int j=0;j<21;j++) {
          for(int i=0;i<4;i++) {
          blockType=Math.abs(r.nextInt() % 7);
          delLine();
          for(int i=0;i<4;i++) {
          public void delLine()
          for(int row=20; row>=0; row--) {
  • TheKnightsOfTheRoundTable/문보창 . . . . 4 matches
         || 2006-02-09 Accepted 0.031 Minimum ||
         // 10195 - The Knights of the Round Table
         #include <iostream>
         using namespace std;
         #include <cstdio>
         #include <cmath>
          printf("The radius of the round table is: %.3f\n", r);
         int main()
          while (cin >> a >> b >> c)
         [TheKnightsOfTheRoundTable]
  • TheKnightsOfTheRoundTable/허준수 . . . . 4 matches
         #include <iostream>
         #include <cmath>
         using namespace std;
          cout << "The radius of the round table is: 0.000" <<endl;
          cout << "The radius of the round table is: "
         int main()
          cout.setf(ios::showpoint);
          while(cin >> a >> b >> c) {
         [TheKnightsOfTheRoundTable]
  • ThePriestMathematician/문보창 . . . . 4 matches
         // 10254 - The Priest Mathematician
         #include "BigInteger.h"
         using namespace BigMath;
         int findK(int n)
          int i;
         void process(int n)
          int k, temp;
          BigInteger result, kpow2(2);
          k = findK(n);
         int main()
          int n;
          while (cin >> n)
         [ThePriestMathematician]
  • TheWarOfGenesis2R . . . . 4 matches
          == Doing ==
         [TheWarOfGenesis2R/일지]
         [TheWarOfGenesis2R/ToDo]
         = Link =
          || ["TheWarOfGenesis2R/Temp"] ||
         ["2dInDirect3d"] [Direct3D] ["프로젝트분류"]
  • TicTacToe/조재화,신소영 . . . . 4 matches
         import javax.swing.*;
          int x,y;
          int counter=0;
          int array[][] = new int [3][3];
          for(int j=0;j<3; j++)
          for(int i=0; i<3;i++)
          System.out.println("x 좌표 : " + x);
          System.out.println("y 좌표 : " + y);
          repaint();
          public static void main(String args[]) {
          public void paint(final Graphics g)
          g.drawLine(100,0,100,300);
          g.drawLine(200,0,200,300);
          g.drawLine(0,100,300,100);
          g.drawLine(0,200,300,200);
          g.drawLine(25,25,75,75);
          g.drawLine(125,25,175,75);
          g.drawLine(225,25,275,75);
          g.drawLine(25,125,75,175);
          g.drawLine(125,125,175,175);
  • VMWare/OSImplementationTest . . . . 4 matches
         gcc였습니다. 하지만 저는 windows 환경하의 vc 개발을 주로 해왔으므로 무척
         불편(?)했습니다. Djgpp 라는 dos용 gcc 포팅 버전과 윈도우용 cygwin 패키지를
          http://www.execpc.com/~geezer/johnfine/index.htm
          Intel은 다른 cpu 벤더보다 역사가 오래되어서 4bit microprocessor인 4004에서
         intel x86 cpu에서 돌던 프로그램도 586에서도 수행되도록 하위호환을 갖게 됩니다.
         로드할 것입니다. ( no 플로피 부팅디스켓, no 리붓, no test machine )
         - Netwide Asm으로 at&t 계열 및 intel 계열 둘다 지원하고 target format도
          main.c
         [BITS 16] ; We need 16-bit intructions for Real
         [ORG 0x7C00] ; The BIOS loads the boot sector into memory location
          int 13h ; Call interrupt 13h
          jnz reset_drive ; Try again if ah != 0
          mov bx, 0h ; Destination address = 0000:1000
          mov ch, 0 ; Cylinder = 0
          int 13h ; Call interrupt 13h
          jnz reset_drive ; Try again if ah != 0
         A20Address: ; Set A20 Address line here
          JMP Continue
          in al,64h
         Continue:
  • VisualAssist . . . . 4 matches
         [MFC/AddIn]
         VS6 에서의 그 버그많은 Intelli Sense 기능을 많이! 보완해준다; VS6 에서 지원하지 않는 매크로 인라인 함수 등에 대해서도 Intelli Sense 기능을 지원. Header - Cpp 화일 이동을 단축키로 지원하는 등 편한 기능이 많다.
         개인 FTP에 올려주고 주기적으로 설치해주지 ㅋㅋ, 이놈이랑 IncrediBuild는 익혀줘야할듯- [eternalbleu]
  • Where's_Waldorf/곽병학_미완.. . . . . 4 matches
          int m;
          int n;
          int k;
          String[] str;
          int index;
          /*int[][] direction= {{-1,-1}, {0,1}, {1,1},
          int[] y = {-1, -1, -1, 0, 1, 1, 1, 0};
          int[] x = {-1, 0, 1, 1, 1, 0, -1, -1};
          int length;
          Case(int m, int n, char[][] grid, int k, String[] str) {
          /*index = 0;*/
          /*direction = new int[2][4];*/
          for(int i=0; i<str.length; i++) { //찾을 단어 개수만큼
          index = 0; //다음 단어의 첫 글자
          for(int row=0; row<m; row++) {
          for(int col=0; col<n; col++) {
          if(grid[row][col] == str[i].charAt(index)) { // 첫 단어가 맞으면
          /*System.out.println(str[i].charAt(index));
          System.out.println((row+1) + " " + (col+1));*/
          System.out.println("444 : " + (row+1) + " " + (col+1) );
  • XpQuestion . . . . 4 matches
         ''Why not move these into XperDotOrg?''
         - '필요하면 하라'. XP 가 기본적으로 프로젝트 팀을 위한 것이기에 혼자서 XP 의 Practice 들을 보면 적용하기 어려운 것들이 있다. 하지만, XP 의 Practice 의 일부의 것들에 대해서는 혼자서 행하여도 그 장점을 취할 수 있는 것들이 있다. (TestDrivenDevelopment, ["Refactoring"], ContinuousIntegration,SimpleDesign, SustainablePace, CrcCard Session 등. 그리고 혼자서 프로그래밍을 한다 하더라도 약간 큰 프로그래밍을 한다면 Planning 이 필요하다. 학생이다 하더라도 시간관리, 일거리 관리는 익혀야 할 덕목이다.) 장점을 취할 수 있는 것들은 장점을 취하고, 지금 하기에 리스크가 큰 것들은 나중에 해도 된다.
         각 Practice 를 공부를 하다보면, 저것들이 이루어지기 위해서 공부해야 할 것들이 더 있음을 알게 된다. (의식적으로 알아낼 수 있어야 한다고 생각한다.) Refactoring 을 잘하기 위해선 OOP 와 해당 언어들을 더 깊이있게 이해할 필요가 있으며 (언어에 대해 깊은 이해가 있으면 똑같은 일에 대해서도 코드를 더 명확하고 간결하게 작성할 수 있다.) CrcCard 를 하다보면 역시 OOP 와 ResponsibilityDrivenDesign 에 대해 공부하게 될 것이다. Planning 을 하다보면 시간관리책이나 일거리 관리책들을 보게 될 것이다. Pair 를 하다보면 다른 사람들에게 자신의 생각을 명확하게 표현하는 방법도 '공부'해야 할 것이다. 이는 결국 사람이 하는 일이기에. 같이 병행할 수 있고, 더 중요한 것을 개인적으로 순위를 정해서 공부할 수 있겠다.
         === UserStory, Engineering Task 의 의존성 문제 ===
         어디선가 이야기 나왔었던 문제. 규모가 되는 프로젝트의 경우 100 장의 Index Card 는 보관하기도 어렵고 널려놓기엔 정신을 어지럽힌다.;;
         - Story Card 는 Kent Beck 이 사용자와 더 빠른 피드백을 위해 생각한 덜 형식적인 방법이다. 어차피 Story Card 는 전부 AcceptanceTest 로 작성할 것이기에, 테스트가 작성되고 나면 AcceptanceTest 가 도큐먼트 역할을 할 것이다. Index Card 도구 자체가 보관용이 아니다. 보관이 필요하다면 위키를 쓰거나 디지털카메라 & 스캐너 등등 '보관용 도구', 'Repository' 를 이용하라.
         - 어차피 실제 고객에게 가치를 주는 중요한 일만을 하자가 목적이기에. Documentation 자체가 중요한 비즈니스 가치를 준다던가, 팀 내에서 중요한 가치를 준다고 한다면 (예를 들어서, 팀원중 몇명이 항시 같이 작업을 할 수 없다던지 등등) Documentation 을 EngineeringTask 에 추가하고 역시 자원(시간)을 분배하라. (Documentation 자체가 원래 비용이 드는 일이다.)
         === PairProgramming 적용하기 ===
         PairProgramming 은 XP 에서 논란이 많은 듯 하다. Man-Hour 를 절반으로 깎는다는 생각을 하게 되어서인지.
         interface 가 잘 정의하고 둘이서 분업을 하면 훨씬 효과적 아닌가?
         - ["1002"] 가 ProjectPrometheus 를 할때엔 거의 전체 작업을 Pair로 진행했다. Integration 비용이 전혀 들지 않았다. (두명이 멤버였으니; 당근!) 그리고 초기 소스와 지금 소스중 초기 모습이 남아있는 부분을 보면 '젠장. 왜 이렇게 짠거야? 이런 허접한...' 이다. 중복된 부분도 많고, 매직넘버도 남아있고, 처음엔 쓸거라 생각했던 일종의 어뎁터 역할을 하는 클래스는 오히려 일만 복잡하게 만들고 등등.
         단, 올바른 Pair는, 역시 Pair 하는 사람들 스스로 성숙할 필요가 있는 것 같다. ["1002"] 처럼 삐지기 쉽거나 F 스타일에 더 가까운 MBTI 스타일을 가진 사람은 약간. -_-; (["1002"] 는 INFP 인데, F 스타일이 T 스타일의 3배이다.; 물론 MBTI만으로 사람 전체를 평가하는것은 당근 아님.~)
         - 이는 SustainablePace 에 대한 증표이다. 보통 일이 초과되어 진행된다는것은 뭔가 일이 잘 안풀린다는 증거가 되기도 하다.
         늘 지속할 수 있는 안정적인 흐름을 만들어내는 것이 중요하다. '40' 숫자가 중요하단 뜻은 아니다. (단, PairProgramming 이 기가막히게 잘 진행되는 경우는, '40시간을 초과' 할 수가 없을 것 같다. 사람 진이 다 빠지니까. -_-;)
  • ZeroPageHistory . . . . 4 matches
         ||1학기 ||2기 회원모집. 1학년을 위한 각종 강좌 마련, 스터디 조직. 2학년 각종 스터디 조직(C++, Graphics, OS, System-Programming, 한글 구현). 첫돌 잔치. ||
         ||겨울방학 ||C++ for windows, X windows Programming, Object Oriented Analysis & Design 등의 Project 수행 ||
          * C++, Computer Graphics, OS, System-Programming
          * C++ for Windows, X Windows Programming, Object Oriented Analysis & Design
         ||여름방학 ||C++, C, X-Window, *Utility 세미나 개최. ||
          * C, C++, X-Windows, Utility
         ||2학기 ||X-Window, Visual Basic, C 세미나 개최. ||
         ||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
          * X-Windows, Visual Basic, C
          * X-Windows, Data Structure, C, C++
         ||1학기 ||5기 회원모집. 제 4회 소프트웨어 전시회 및 4주년 기념행사. C 초급, Assembly, Inside PC 강좌. ||
         ||여름방학 ||C 중급, C++, Network Programming 강좌. ||
          * C, Assembly Language, Inside PC
          * C, C++, Network Programming
         ||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
         ||여름방학 ||C++, HTML, Object Pascal 세미나 개최.(목적 불문 게시물: 비선점형/선점형 멀티태스킹, Win32의 프로세스와 스레드.)(긁어놓은 게시물: 타이머, 마우스) ||
         FixMe 임베팅한 사이즈 조절 할줄 모르겠음. 오리지날 파일은 아래 참고. 스크린샷 상의 오르지오 메일은 망해서 모자이크 처리 안했음 --NeoCoin
         ||1학기 ||회장 이창섭, 12기 회원 모집. ZeroWiki 시스템 도입. Devils 통합. Internet Problem Solving Contest 참여, 서강대 MentorOfArts 팀과 프로그래밍파티 개최 ||
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
  • ZeroPage성년식/거의모든ZP의역사 . . . . 4 matches
         ||1학기 ||2기 회원모집. 1학년을 위한 각종 강좌 마련, 스터디 조직. 2학년 각종 스터디 조직(C++, Graphics, OS, System-Programming, 한글 구현). 첫돌 잔치. ||
         ||겨울방학 ||C++ for windows, X windows Programming, Object Oriented Analysis & Design 등의 Project 수행 ||
          * C++, Computer Graphics, OS, System-Programming
          * C++ for Windows, X Windows Programming, Object Oriented Analysis & Design
         ||여름방학 ||C++, C, X-Window, *Utility 세미나 개최. ||
          * C, C++, X-Windows, Utility
         ||2학기 ||X-Window, Visual Basic, C 세미나 개최. ||
         ||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
          * X-Windows, Visual Basic, C
          * X-Windows, Data Structure, C, C++
         ||1학기 ||5기 회원모집. 제 4회 소프트웨어 전시회 및 4주년 기념행사. C 초급, Assembly, Inside PC 강좌. ||
         ||여름방학 ||C 중급, C++, Network Programming 강좌. ||
          * C, Assembly Language, Inside PC
          * C, C++, Network Programming
         ||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
         ||여름방학 ||C++, HTML, Object Pascal 세미나 개최.(목적 불문 게시물: 비선점형/선점형 멀티태스킹, Win32의 프로세스와 스레드.)(긁어놓은 게시물: 타이머, 마우스) ||
         FixMe 임베팅한 사이즈 조절 할줄 모르겠음. 오리지날 파일은 아래 참고. 스크린샷 상의 오르지오 메일은 망해서 모자이크 처리 안했음 --NeoCoin
         ||1학기 ||회장 이창섭, 12기 회원 모집. ZeroWiki 시스템 도입. Devils 통합. Internet Problem Solving Contest 참여, 서강대 MentorOfArts 팀과 프로그래밍파티 개최 ||
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
  • [Lovely]boy^_^/Diary/2-2-16 . . . . 4 matches
          * I completely destroy the marriage and family final-exam.--;
          * I borrow the Role Playing Game with DirectX.
          * Today, All final-exams will end.
         DeleteMe) I envy you. In my case, all final-exams will end at Friday. Shit~!!! -_- Because of dynamics(In fact, statics)... -_-;; --["Wiz"]
          * It's 1st day of a winter school vacation. I must do a plan.
          * I read a novel named the Brain all day. Today's reading amount is about 600 pages. It's not so interesting as much as the price of fame.
          * '''When I am given a motive, I can do the things extreme.'''
          * '''There is no man nicer than a man who has a target, and rushs towards it.'''
          * I studied Grammar in Use Chapter 39,40. I have not done study this book since then summer.--;
          * I read a little Power Reading. Today's reading's principle content is using a regulator(ex) pen, pinger. etc). but this method is what I have used all the time.--; I should read a lot more.
          * I studied ProgrammingPearls chapter 3. When I was reading, I could find familiar book name - the Mythical Man Month, and Code Complete.
          * I summarized a ProgrammingPearls chapter 3.
          * '''The more general problem may be easier to solve.'''
          * I typed directX codes from NeXe sites, because RolePlaying Games with DirectX that I borrowed some days ago is so difficult for me. Let's study slow and steady...
          * I studied ProgrammingPearls chapter 4,5. Both 4 and 5 are using a binary search. Its content is no bug programm.
          * I studied Grammar in Use Chapter 41,42.
          * My mom was leaving a hospital. ^^
          * '''Keeping the code simple is usually the key to correctness.'''
          * I summarized a ProgrammingPearls chapter 4,5.
          * I summarized a ProgrammingPearls chapter 6.
  • eXtensibleStylesheetLanguageTransformations . . . . 4 matches
         Extensible Stylesheet Language Transformations, or XSLT, is an XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents.
         XSLT was produced as a result of the Extensible Stylesheet Language (XSL) development effort within W3C during 1998–1999, which also produced XSL Formatting Objects (XSL-FO) and the XML Path Language, XPath. The editor of the first version (and in effect the chief designer of the language) was James Clark. The version most widely used today is XSLT 1.0, which was published as a Recommendation by the W3C on 16 November 1999. A greatly expanded version 2.0, under the editorship of Michael Kay, reached the status of a Candidate Recommendation from W3C on 3 November 2005.
         <img src="http://upload.wikimedia.org/wikipedia/en/5/5a/XSLTprocessing.PNG" />
  • radiohead4us/SQLPractice . . . . 4 matches
         1. Find the names of all branches in the loan relation. (4.2.1 The select Clause)
         2. Find all loan numbers for loans made at the Perryridge branch with loan amounts greater that $1200. (4.2.2 The where Clause)
         3. For all customers who have a loan from the bank, find their names, loan numbers and loan amount. (4.2.3 The from Clause)
         4. Find the customer names, loan numbers, and loan amounts for all loans at the Perryridge branch. (4.2.3 The from Clause)
         5. For all customers who have a loan from the bank, find their names, loan numbers, and loan amount. (4.2.5 Tuple Variables)
         6. Find the names of all branches that have assets greater than at least one branch located in Brooklyn. (4.2.5 Tuple Variables)
         7. Find the names of all customers whose street address includes the substring 'Main'. (4.2.6 String Operations)
         8. Find the average account balance at each branch. (4.4 Aggregate Functions)
         9. Find the number of depositors for each branch. (4.4 Aggregate Functions)
         10. Find the average balance for all accounts. (4.4 Aggregate Functions)
         11. Find the average balance for each customer who lives in Harrison and has at least three accounts. (4.4 Aggregate Functions)
         12. Find all customers who have both a loan and an account at the bank. (4.6.1 Set Membership)
         13. Find all customers who have both an account and a loan at the Perryridge branch. (4.6.1 Set Membership)
         14. Find the names of all branches that have assets greater than those of at least one branch located in Brooklyn. (4.6.2 Set Comparison)
         15. Find the branch that has the highest average balance. (4.6.2 Set Comparison)
         16. Find all customers who have both an account and a loan at the bank. (4.6.3 Test for Empty Relations)
         17. Find all customers who have an account at all the branches located in Brooklyn. (4.6.3 Test for Empty Relations)
         18. Find all customers who have at most one account at the Perryridge branch. (4.6.4 Test for the Absence of Duplicate Tuples)
         19. Find all customers who have at least two accounts at the Perryridge branch. (4.6.4 Test for the Absence of Duplicate Tuples)
  • 그래픽스세미나/5주차 . . . . 4 matches
          PPT 파일: Upload:CGSeminar5.zip
          *MATERIAL_SHINE 0.2500
          *MATERIAL_SHINESTRENGTH 0.5000
          *MATERIAL_SHADING Blinn
          *MATERIAL_FALLOFF In
          *MATERIAL_SHINE 0.2500
          *MATERIAL_SHINESTRENGTH 0.0500
          *MATERIAL_SHADING Blinn
          *MATERIAL_FALLOFF In
          *INHERIT_POS 0 0 0
          *INHERIT_ROT 0 0 0
          *INHERIT_SCL 0 0 0
          *MESH_FACE 0: A: 0 B: 2 C: 3 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 2 *MESH_MTLID 1
          *MESH_FACE 1: A: 3 B: 1 C: 0 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 2 *MESH_MTLID 1
          *MESH_FACE 2: A: 4 B: 5 C: 7 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 3 *MESH_MTLID 0
          *MESH_FACE 3: A: 7 B: 6 C: 4 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 3 *MESH_MTLID 0
          *MESH_FACE 4: A: 0 B: 1 C: 5 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 4 *MESH_MTLID 4
          *MESH_FACE 5: A: 5 B: 4 C: 0 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 4 *MESH_MTLID 4
          *MESH_FACE 6: A: 1 B: 3 C: 7 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 5 *MESH_MTLID 3
          *MESH_FACE 7: A: 7 B: 5 C: 1 AB: 1 BC: 1 CA: 0 *MESH_SMOOTHING 5 *MESH_MTLID 3
  • 데블스캠프2005/월요일 . . . . 4 matches
          [http://xenbio.net/cgi/view/Xen/PlaySmalltalkWithIndexCard 잡담카드게임] 45m
          === For ObjectOrientedProgrammingSeminar ===
          IndexCard
          ==== Link ====
          NoSmok:ObjectOrientedProgramming (NoSmok)
          Wiki:ObjectOrientedProgramming (OriginalWiki)
          [http://c2.com/doc/oopsla89/paper.html A Laboratory For Teaching Object-Oriented Thinking]
          Object-Oriented Programming with Squeak
          [http://www.zib.de/Visual/people/mueller/Course/Tutorial/tutorial.html Introduction to Object-Oriented Programming Using C++]
          (15)textIntputBox와 버튼이벤트를 이용한 입력처리
  • 데블스캠프2009/목요일/연습문제/MFC/박준호 . . . . 4 matches
         #include "stdafx.h"
         #include "TestAPP.h"
         #include "TestAPPDlg.h"
         #define new DEBUG_NEW
         int m_number01;
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
         BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
          //{{AFX_DATA_INIT(CTestAPPDlg)
          //}}AFX_DATA_INIT
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         BEGIN_MESSAGE_MAP(CTestAPPDlg, CDialog)
          ON_WM_PAINT()
         BOOL CTestAPPDlg::OnInitDialog()
          CDialog::OnInitDialog();
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진 . . . . 4 matches
          public static void main(String[] args) throws IOException {
          Tester tester = new Tester(new Trainer[] {
          new Trainer("package/train/economy/index.economy.db").load(),
          new Trainer("package/train/politics/index.politics.db").load() });
          for (int i = 0; i < readers.length; i++) {
          int right = 0, wrong = 0;
          for (String line; (line = reader.readLine()) != null;) {
          if (tester.getWeight(i, line) > 0) {
          System.out.println(right + "\t" + wrong + "\t" + ((double)right/(right+wrong)));
         public class Trainer {
          private String fileName;
          private int docsCount;
          private int wordsCount;
          private Map<String, Integer> wordCount = new HashMap<String, Integer>();
          public Trainer(String fileName) {
          public Trainer load() throws IOException {
          for (String line; (line = reader.readLine()) != null;) {
          for (String word : line.split("\\s+")) {
          Integer count = wordCount.get(word);
          public int getDocsCount() {
  • 레밍즈프로젝트/프로토타입/마스크이미지 . . . . 4 matches
          void DrawBitMap(UINT ITEM, int x, int y, UINT rop=SRCCOPY){
          BITMAP bitmapInfo;
          newBitmap.GetBitmap(&bitmapInfo);
          m_pMemDC->BitBlt(x, y, bitmapInfo.bmWidth, bitmapInfo.bmHeight, &BitMapDC, 0, 0, rop);
          void DrawMaskBitMap(UINT MASKITEM, UINT IMGITEM, int x, int y){
          this->DrawBitMap(IMGITEM, x, y, SRCPAINT);
  • 몸짱프로젝트/InfixToPrefix . . . . 4 matches
          def __init__(self, aExpression = ''):
          if aToken in self.precedence:
          for l in self.list:
          self.list.insert(-1, aOperator)
          self.list.insert(0, aOperator)
          def convertInfixToPrefix(self):
          for e in self.expression:
          def testConvertInfixToPrefix(self):
          e.convertInfixToPrefix()
          e.convertInfixToPrefix()
         if __name__ == '__main__':
          unittest.main()
  • 새싹교실/2012/아무거나 . . . . 4 matches
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
         [[Include(새싹교실/2012/아무거나/1회차)]]
         [[Include(새싹교실/2012/아무거나/2회차)]]
         [[Include(새싹교실/2012/아무거나/3회차)]]
  • 위키QnA . . . . 4 matches
         Q : 링크에 밑줄이 생길때가 있고 안생길때가 있습니다. 그렇다기 보다는 생기는건 생기고, 어떤건 계속 안생겨 있군요. (in mozilla) --zennith
         A : 아. 한번 고쳐봤습니다; 위의 네비게이션 바에 tab index를 주었습니다. 맨 처음 focus 는 바로가기 GO 입력창에 커서가 오고요. 그 다음 Shift + Tab 을 누르면 TAB 이 최근바뀐글 -> 검색 -> 제목색인 순으로 움직입니다. (반발이 3명 이상 나오면 원상복귀 하겠습니다;;) --석천
         === InterWiki 는 무엇인가요? ===
         A : InterWiki 라고 합니다. InterWiki 에 등록된 다른 위키의 페이지를 링크 걸때 사용합니다. 위키간 이름공간을 연결해주는 유용한 매크로. ^^; InterWiki 에 가보시면 현재 등록된 다른 위키페이지들을 알 수 있습니다.~
          현재의 FrontPage가 하는 역할이 좀 많다고 생각하는데. (Long Method 에 대해서는 Refactoring이 필요한 법. --a) FrontPage가 하는 역할들에 대해 페이지들을 슬슬 나누는 것은 어떨까 생각중. --석천
          난 지금이 딱좋은데 더 확장되면 골치 아플껏 같고.. 혹은 사용용도가 ZeroWiki 와 합쳐 져야 한다고도 생각. project의 직접 접근성을 없애는건 반대이고 Starting Point에 사용용도를 링크하는 것이 최적이라고 생각 --상민
          FrontPage가 현재 하고 있는일이 (보여주고 있는 것) ZeroWiki 정의, 사용용도, Starting Point (여기에는 프로젝트 열거도 포함), 제안이야. 이중에서 사용용도와 제안은 새 페이지로 빼는 것이 좋을 것 같은데. 그리고 프로젝트 열거 밑에 Starting Point 밑에 두는 것도 생각. 그리고 또하나는 현재 이 프로젝트 관련 글을 Q&A가 아닌 제안페이지에 두는것이 더 좋겠다는 것. 현재 우선적인 직접접근성을 제공받아야 할 것은 project니까. 그에 대해서는 나도 별 이견 없음. --석천
         Q: Bioinformatics에 관한 프로젝트를 진행하려고 합니다. 소개와 내용의 재정리를 위해서는 많은 이미지 파일들을 위키에 올려야 될지도 모르겠는데, 위키에서의 이미지 사용은 그렇게 적절하지 않은 것 같습니다. 어떤 방식으로 이를 해결할 수 있을까요?
  • 유용한팁들 . . . . 4 matches
         == Simple Text Indexer Using SQLite ==
          * [SimpleTextIndexerUsingSQLite]
          * 원본 글 : [http://www.codeproject.com/useritems/Text_Indexer.asp]
         == ssh login without password ==
          * [http://www.linuxproblem.org/art_9.html 참고글]
         Generating public/private rsa key pair.
         Enter file in which to save the key (/home/a/.ssh/id_rsa):
         Enter same passphrase again:
         Your identification has been saved in /home/a/.ssh/id_rsa.
         Your public key has been saved in /home/a/.ssh/id_rsa.pub.
         The key fingerprint is:
  • 장용운/알파벳놀이 . . . . 4 matches
         #include <iostream>
         using std::cout;
         using std::cin;
         using std::endl;
         int main(void) {
          cin>>a>>b;
         void draw(char begin, char end) {
          for(int i=0; i<= (end-begin); i++) {
          for(int j=0; j<=i; j++) {
          cout<<(char)(begin+j);
         Input:
         Input:
         Input:
         Input:
  • 캠이랑놀자/보창 . . . . 4 matches
          r = fixIndex(rgbValue[0], 0)
          g = fixIndex(rgbValue[1], 0)
          b = fixIndex(rgbValue[2], degree)
         def fixIndex(value, degree):
         for x in range(0,100):
          for y in range(0,100):
  • 컴퓨터공부지도 . . . . 4 matches
         Scientist . Engineer . Programmer 의 영역. (꼭 이분법적으로 나누는건 좀 그렇지만. 일종의 간단한 분류체계정도?)
         === Windows Programming (Windows Platform Programming) ===
         Windows Programming 이라고 한다면 Windows 운영체제에서 Windows 관련 API 를 이용 (혹은 관련 Framework), 프로그래밍을 하는 것을 의미한다. 보통 다루는 영역은 다음과 같다. (이 영역은 꼭 Windows 이기에 생기는 영역들이 아니다. Windows 이기에 생기는 영역들은 Shell Extension 이나 ActiveX, DirectX 정도? 하지만, 가로지르기는 어떻게든지 가능하다)
         ==== GUI Programming ====
         예전에 Windows Programming 을 배운다고 한다면 기본적으로 GUI Programming 을 의미했다. Windows 가 기본적으로 GUI OS 이기에 기본이 이것이라고 생각하는 것이다. 하지만, GUI 는 어디까지나 'User Interface' 이다. 즉, 이건 Input/Output 에 대한 선택사항이다. 필요할때 공부하자. (하지만, 보통 User-Friendly 한 프로그램들은 대부분 GUI 이다.)
         Windows 에서 GUI Programming 을 하는 방법은 여러가지이다. 언어별로는 Python 의 Tkinter, wxPython 이 있고, Java 로는 Swing 이 있다. C++ 로는 MFC Framework 를 이용하거나 Windows API, wxWindows 를 이용할 수 있으며, MFC 의 경우 Visual Studio 와 연동이 잘 되어서 프로그래밍 하기 편하다. C++ 의 다른 GUI Programming 을 하기위한 툴로서는 Borland C++ Builder 가 있다. (C++ 중급 이상 프로그래머들에게서 오히려 더 선호되는 툴)
         가장 쉽게 GUI Programming 을 배우는방법이라 생각되는건, Python 에서의 Tkinter Programming 또는 Jython Interpreter 에서 Swing Tutorial 을 이용하는것이다. (["Jython"] 페이지의 JythonTutorial 참조)
         GUI Programming 을 하면서 익힐 수 있는 소중한 개념으로서 Event Driven Programming, Design 으로는 CompositePattern 이 있다. 대부분의 GUI Framework 들은 Event Driven Style 의 프로그래밍 방식이며, 대부분 CompositePattern 을 이용한다. Framework 들의 디자인 개념들이 비슷하므로, 하나의 GUI 관련 Framework 에 익숙해지면 다른 Framework 도 쉽게 익힐 수 있다.
         Windows GUI Programming 관련 서적으로는 찰스페촐드의 책을 추천한다. 책 내용이나 번역(!)글이 어렵지만 개념설명이 잘 되어 있으며, 실려있는 예제들이 좋다.
         ==== Windows API ====
         ==== Network Programming ====
         ==== Multi Thread Programming ====
         === 3D Programming ===
         === Network Programming ===
         이를 위해 Interactive Shell이 지원되는 인터프리터 언어(e.g. Python)와 패킷 스니퍼(e.g. tcpdump, ethereal, etherpeek, ...), 웹 브라우져, FTP, TELNET 클라이언트 등을 이용할 수 있다.
         See Also HowToStudyXp, HowToReadIt, HowToStudyDataStructureAndAlgorithms, HowToStudyDesignPatterns, HowToStudyRefactoring
  • 파스칼삼각형/김수경 . . . . 4 matches
         #include <stdio.h>
         int Pascal(int m, int n){
         void main(){
          int m,n;
          printf("행, 열 차례대로 입력 ex/3,2\n>>>>");
          printf("%d행 %d열의 파스칼의 삼각형 숫자는 %d 입니다.\n",m, n, Pascal(m,n));
         def pascal(line, element):
          if not isinstance(element, int):
          print "E = " , element , " : Please input an Integer"
          print "E = " , element , " : Please input an Integer greater than 0"
          if line < element:
          print "Element must less than line"
          if (line == 1) or (element == 1) or (line == element):
          return pascal(line-1, element-1) + pascal(line-1, element)
          if not isinstance(n, int):
          print "N = " , n , " : Please input an Integer"
          print "N = " , n , " : Please input an Integer greater than 0"
          for j in range(0, n-i):
          print "",
          for j in range(1, i+1):
  • 프로그램내에서의주석 . . . . 4 matches
          아..["Refactoring"] 하라는 거군요.. 사실 설계 자체에서도 빠진 상태라 전체 구조 이해하는데 가장 크게 애를 먹었습니다. 아무튼 진짜 이해한 후에 코드를 수정해 놓는 것도 좋은 방법인건 분명하다고 생각합니다. ^^; --창섭
         처음에 Javadoc 을 쓸까 하다가 계속 주석이 코드에 아른 거려서 방해가 되었던 관계로; (["IntelliJ"] 3.0 이후부턴 Source Folding 이 지원하기 때문에 Javadoc을 닫을 수 있지만) 주석을 안쓰고 프로그래밍을 한게 화근인가 보군. 설계 시기를 따로 뺀 적은 없지만, Pair 할 때마다 매번 Class Diagram 을 그리고 설명했던 것으로 기억하는데, 그래도 전체구조가 이해가 가지 않았다면 내 잘못이 크지. 다음부터는 상민이처럼 위키에 Class Diagram 업데이트된 것 올리고, Javadoc 만들어서 generation 한 것 올리도록 노력을 해야 겠군.
         내가 가지는 주석의 관점은 지하철에서도 언급한 내용 거의 그대로지만, 내게 있어 주석의 주된 용도는 과거의 자신과 대화를 하면서 집중도 유지, 진행도 체크하기 위해서 이고, 기타 이유는 일반적인 이유인 타인에 대한 정보 전달이다. 전자는 command.Command.execute()이나 상규와 함께 달은 information.InfoManager.writeXXX()위의 주석들이고,후자가 주로 쓰인 용도는 각 class 상단과 package 기술해 놓은 주석이다. 그외에 class diagram은 원래 아나로그로 그린것도 있지만, 설명하면서 그린건 절대로 타인의 머리속에 통째로 저장이 남지 않는다는 전제로, (왜냐면 내가 그러니까.) 타인의 열람을 위해 class diagram의 디지털화를 시켰다. 하는 김에 그런데 확실히 설명할때 JavaDoc뽑아서 그거가지고 설명하는게 편하긴 편하더라. --["상민"]
         자바 IDE들이 Source Folding 이 지원하거나 comment 와 관련한 기능을 지원한다면 해결될듯. JavaDoc 은 API군이나 Framework Library의 경우 MSDN의 역할을 해주니까. --석천
         자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
          하지만, "확실히 설명할때 {{{~cpp JavaDoc}}}뽑아서 그거가지고 설명하는게 편하긴 편하더라."라고 한말 풀어쓰는 건데, 만약 디자인 이해 후에 코드의 이해라면 {{{~cpp JavaDoc}}} 없고 소스만으로 이해는 너무 어렵다.(최소한 나에게는 그랬다.) 일단 코드 분석시 {{{~cpp JavaDoc}}}이 나올 정도라면, "긴장 완화"의 효과로 먹고 들어 간다. 그리고 우리가 코드를 읽는 시점은 jdk를 쓸때 {{{~cpp JavaDoc}}}을 보지 소스를 보지는 않는 것처럼, 해당 메소드가 library처럼 느껴지지 않을까? 그것이 메소드의 이름이나 필드의 이름만으로 완벽한 표현은 불가능하다고 생각한다. 완벽히 표현했다면 너무나 심한 세분화가 아닐까? 전에 정말 난해한 소스를 분석한 적이 있다. 그때도 가끔 보이는 실낱같은 주석들이 너무나 도움이 된것이 기억난다. 우리가 제출한 Report를 대학원 생들이 분석할때 역시 마찬가지 일것이다. 이건 궁극의 Refactoring문제가 아니다. 프로그래밍 언어가 그 셰익스피어 언어와 같았으면 하기도 하는 생각을 해본다. 생각의 언어를 프로그래밍 언어 대입할수만 있다면야.. --["상민"]
         내가 Comment 와 JavaDoc 둘을 비슷한 대상으로 두고 쓴게 잘못인듯 하다. 두개는 좀 구분할 필요가 있을 것 같다는 생각이 들어서다. 내부 코드 알고리즘 진행을 설명하기 위해서는 다는 주석을 comment로, 해당 구성 클래스들의 interface를 서술하는것을 JavaDoc으로 구분하려나. 이 경우라면 JavaDoc 과 Class Diagram 이 거의 비슷한 역할을 하겠지. (Class Diagram 이 그냥 Conceptual Model 정도라면 또 이야기가 달라지겠지만)
          그리고, JDK 와 Application 의 소스는 그 성격이 다르다고 생각해서. JDK 의 소스 분석이란 JDK의 클래스들을 읽고 그 interface를 적극적으로 이용하기 위해 하는 것이기에 JavaDoc 의 위력은 절대적이다. 하지만, Application 의 소스 분석이라 한다면 실질적인 implementation 을 볼것이라 생각하거든. 어떤 것이 'Information' 이냐에 대해서 바라보는 관점의 차이가 있겠지. 해당 메소드가 library처럼 느껴질때는 해당 코드가 일종의 아키텍쳐적인 부분이 될 때가 아닐까. 즉, Server/Client 에서의 Socket Connection 부분이라던지, DB 에서의 DB Connection 을 얻어오는 부분은 다른 코드들이 쌓아 올라가는게 기반이 되는 부분이니까. Application 영역이 되는 부분과 library 영역이 되는 부분이 구분되려면 또 쉽진 않겠지만.
         이번기회에 comment, document, source code 에 대해서 제대로 생각해볼 수 있을듯 (프로그램을 어떻게 분석할 것인가 라던지 Reverse Engineering Tool들을 이용하는 방법을 궁리한다던지 등등) 그리고 후배들과의 코드에 대한 대화는 익숙한 comment 로 대화하는게 낫겠다. DesignPatterns 가 한서도 나온다고 하며 또하나의 기술장벽이 내려간다고 하더라도, 접해보지 않은 사람에겐 또하나의 외국어일것이니. 그리고 영어가 모국어가 아닌 이상. 뭐. (암튼 오늘 내일 되는대로 Documentation 마저 남기겠음. 글쓰는 도중 치열하게 Documentation을 진행하지도 않은 사람이 말만 앞섰다란 생각이 그치질 않는지라. 물론 작업중 Doc 이 아닌 작업 후 Doc 라는 점에서 점수 깎인다는 점은 인지중;) --석천
          ''DeleteMe) 부연설명 : 녹색글자는 ["Eclipse"] 에서 내부 주석에 대당. ["IntelliJ"] 는 일반적으로 회색. ["Vi"] 에서의 Java Syntax 에선 파란색.''
         // MODE_ADDBEFORE일 때는, newnode가 this의 자식인 brother의 바로 윗형으로 입양을 간다.
         // MODE_ADDAFTER일 때는, newnode가 this의 자식인 brother의 바로 아래 동생으로 입양을 간다.
         // brother = NULL
         // Constraint
         // brother는 반드시 NULL이거나 this의 child node이어야 한다.
         // addChild(newnode, MODE_ADDAFTER, brother); //newnode가 brother 바로 뒤에 삽입된다.
         // addChild(newnode, MODE_ADDBEFORE, brother); //newnode가 brother 바로 앞에 삽입된다.
         CSmilNode* CSmilNode::addChild(CSmilNode* newnode, DCLADDMODE nMode, CSmilNode* brother)
         // brother = (this의 자식인)윗형
         See Also Seminar:CommentOrNot , NoSmok:DonaldKnuth 's comment on programs as works of literature
  • 2002년도ACM문제샘플풀이/문제E . . . . 3 matches
         #include <iostream>
         #include <algorithm>
         using namespace std;
         struct InputData
          int n;
          int weight[1000];
         int numberOfData;
         InputData inputData[10];
         int outputData[10];
         void input()
          cin >> numberOfData;
          for(int i=0;i<numberOfData;i++)
          cin >> inputData[i].n;
          for(int j = 0 ; j < inputData[i].n ; j++)
          cin >> inputData[i].weight[j];
          InputData temp;
          int totalWeight;
          for(int i=0;i<numberOfData;i++)
          temp = inputData[i];
          sort(&temp.weight[0],&temp.weight[inputData[i].n]);
  • 2dInDirect3d/Chapter1 . . . . 3 matches
         = Initializing Direct3D =
          == Initialization Step ==
          == Purpose of the IDirect3D8 Object ==
          == Creating IDirect3D8 Object ==
          UINT SDKVersion;
          1. [IN] 유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.
          == Examining Capabilities ==
         UINT IDirect3D8::GetAdapterCount();
          UINT Adapter,
          1. [RET] HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.
          2. [IN] 첫번째 인자는, 어댑터의 번호이다. 당연히 D3DADAPTER_DEFAULT를 넣어준다.
          3. [IN] 두번째 인자는 플래그이다. 0이나 D3D_ENUM_NO_WHQL_LEVEL을 넣을 수 있지만, 대개 0을 넣는다.
          UINT Adapter,
          === Looking at Adapter Display Modes ===
         UINT IDirect3D8::GetAdapterModeCount(
          UINT Adapter;
          UINT Adapter,
          UINT Mode,
          === Getting the Current Display Mode ===
          UINT Adapter,
  • 2dInDirect3d/Chapter2 . . . . 3 matches
         = Creating a Device =
          UINT Adapter, // 어댑터의 번호, D3DADAPTER_DEFAULT를 사용
          HWND hFocusWindow, // 현재 창의 HWND를 넣어준다.
          IDirect3DDevice8** ppReturnedDeviceInterface
          2. BehaviorFlag에는 버텍스를 처리하는 방법을 넣어준다. D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING중 한가지를 사용한다. (사실은 더 많은 옵션이 있다.) 대개 마지막 SOFTWARE를 사용한다.
         MinZ = 0.0f : Z의 최소값. 대개 0.0f
          == Present The Scene ==
          HWND hDestWindowOverride,
          1. 결과값은 D3D_OK, 실패했을경우엔 D3D_INVALIDCALL이나 D3D_DEVICELOST가 리턴된다.
         ["2dInDirect3d"]
  • AKnight'sJourney/강소현 . . . . 3 matches
         ||Problem|| 2488||User||talin0528||
         public class Main{
          public static int [][] savePath;
          public static int [][] direct = {{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}};
          public static void main(String [] args){
          Scanner sc = new Scanner(System.in);
          int count = sc.nextInt();
          for(int i=1; i<=count; i++){
          int p = sc.nextInt();
          int q = sc.nextInt();
          System.out.println("Scenario #"+i+":");
          int [][] path = new int[p+1][q+1];
          savePath = new int[p*q][2];
          if(isPromising(1,1, path,0)){
          for(int k=0; k<savePath.length; k++){
          System.out.printf("%c%d",savePath[k][1]+64, savePath[k][0]);
          System.out.print("impossible");
          System.out.println("\n");
          private static boolean isPromising(int p, int q, int [][] path, int count){
          for(int i=0; i<direct.length; i++){
  • AcceleratedC++/Chapter14 . . . . 3 matches
         = Chapter 14 Managing memory (almost) automatically =
         Student_info 클래스는 레코드의 인터페이스. 레코드의 메모리 공간을 관리한다.
         == 14.1 Handles that copy their objects ==
         || * 포인터를 복사하는 것은 그 대상 객체를 복사하는 것과는 다름. [[HTML(<BR/>)]] * 포인터의 소멸이 그 객체의 소멸을 의미하지 않는다. (memory leak) [[HTML(<BR/>)]] * 포인터 소멸시키지 않고, 객체를 소멸할경우 dangling pointer 발생. [[HTML(<BR/>)]] * 포인터 생성시 초기화하지 않으면, 포인터를 바인딩되지 않은 상태가된다. ||
         13.5의 Student_info 는 프로그래머가 내부의 Core객체를 볼 수없고, 자동으로 메모리 관리가 되도록은 했으나, 메소드들이 Core클래스의 public연산들을 그대로 따르는 것들이 많다.
         //main.cpp
         #include <algorithm>
         #include <ios>
         #include <iomanip>
         #include <iostream>
         #include <stdexcept>
         #include <vector>
         #include "Handle.h"
         #include "Student_info.h"
         using std::cin;
         using std::cout;
         using std::domain_error;
         using std::endl;
         using std::sort;
         using std::streamsize;
  • AcceleratedC++/Chapter5 . . . . 3 matches
         = Chapter 5 Using sequential containers and analyzing strings =
          * 여태까지 vector랑 string 갖고 잘 놀았다. 이제 이것들을 넘어서는 것을 살펴볼 것이다. 그러면서 라이브러리 사용법에 대해 더 깊게 이해하게 될것이다. 라이브러리는 자료구조?함수만을 제공해주는 것이 아니다. 튼튼한 아키텍쳐도 반영해준다. 마치 vector의 사용법을 알게 되면, 다른것도 쉽게 배울수 있는것처럼...
          == 5.1 Separating students into categories ==
         bool fgrade(const Student_info& s)
         vector<Student_info> extract_fails(vector<Student_info>& students)
          vector<Student_info> pass, fail;
          for(vector<Student_info>::size_type i = 0; i != students.size() ; ++i)
          === 5.1.1 Erasing elements in place ===
         vector<Student_info> extract_fails(vector<Student_info>& students)
          vector<Student_info> fail;
          vector<Student_info>::size_type i = 0
          students.erase(students.begin() + i);
         vector<Student_info> extract_fails(vector<Student_info>& students)
          vector<Student_info> fail;
          vector<Student_info>::size_type i = 0;
          vector<Student_info>::size_type size = students.size();
          students.erase(students.begin() + i);
         for(vector<Student_info>::size_type i = 0 ; i != students.size() ; ++i)
         for(vector<Student_info>::const_iterator i = students.begin() ; i != students.end() ; ++i)
          * begin()과 end()는 각각 컨테이너의 맨 처음 요소를 가리키는 반복자와, 맨 마지막에서 한칸 지난 것을 가리키는 반복자를 리턴해준다.
  • AliasPageNames . . . . 3 matches
         #format plain
         # InterMap에는 TwinPages가 정의되어 있는지 확인하시기 바랍니다.
         InterMap<InterWikiMap
         WikiName,위키네임,위키이름
         MoinMoin,모인모인
         ExtendedWikiName,확장위키네임,확장위키이름
         Linux,리눅스
         WindowManager,창관리자
         HelpOnProcessors,ProcessorPlugin,Processor,Processors,프로세서
         HelpOnMacros,MacroPlugin,매크로
         MoniWikiACL>MoniWiki:MoniWikiACL,SecurityPlugin
  • AustralianVoting/문보창 . . . . 3 matches
         // no10142 - Australian Voting
         #include <iostream>
         #include <string>
         using namespace std;
         bool elect(const char can[][81], const int & nCan, const int bal[][20], const int & nBal, string & win);
         int main()
          int nCase;
          cin >> nCase;
          cin.get();
          cin.get();
          int nCandidate;
          int ballot[1000][20];
          string winner;
          int i, j;
          cin >> nCandidate;
          cin.get();
          cin.getline(candidate[j], 81, '\n');
          int nBallot = 0;
          cin >> ballot[nBallot][j];
          cin.get();
  • BigBang . . . . 3 matches
          * ALGOL계 언어라고도 한다고 한다.. [http://hkpark.netholdings.co.kr/web/inform/default/inform_view.asp?menu_id=9730&id=1456&parent_id=1517 궁금해 할 사람을 위해]
         #include <iostream>
         using namespace std;
         int main(){
          * #include, #define, #ifndef 등...
          * using namespace NAME; -> NAME의 namespace를 해당 scope 안에서 이용하겠다는 것
          * using
          * char의 배열, '''null terminated''' char sequence
          * string Class
          * UNIX/LINUX 계열에서는 중요한 정보
          * [http://thenine.egloos.com/430823 main 함수의 리턴값]
          * int, long, long long, short, char
          * int크기는 CPU가 한번에 처리할수 있는 정수 - 당연히 16bit에서는 다를수 있다.
          * java에서는 int와 boolean은 호환되지 않는다. while(1) {}는 컴파일에러.
         ==== 포인터 (Pointer) ====
          * void pointer 사용 자제합시다. void pointer가 가리키는 값의 타입을 추론할 수 없다. [http://stackoverflow.com/questions/1718412/find-out-type-of-c-void-pointer 참고]
          * function이란 input과 output이 있는 기능 단위
          1. call by pointer
          * C/C++의 함수 호출 방법(Calling Convention)
          * [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3485.pdf c++11(아마도?) Working Draft]의 7.5절 linkage specification 참고
  • Boost/SmartPointer . . . . 3 matches
         #include <boost/smart_ptr.hpp>
         using namespace boost;
         // copyright notice appears in all copies. This software is provided "as is"
         // See http://www.boost.org for most recent version including documentation.
         // 21 May 01 Initial complete version (Beman Dawes)
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         // argument, so would not work as intended. At that point the code was
         // turned into an actual .cpp file so it could be compiled and tested.
         #include <vector>
         #include <set>
         #include <iostream>
         #include <algorithm>
         #include <boost/shared_ptr.hpp>
         // The application will produce a series of
         // and by ordering relationship (std::set).
          Foo( int _x ) : x(_x) {}
          ~Foo() { std::cout << "Destructing a Foo with x=" << x << "\n"; }
          int x;
         int main()
  • BoostLibrary/SmartPointer . . . . 3 matches
         #include <boost/smart_ptr.hpp>
         using namespace boost;
         // copyright notice appears in all copies. This software is provided "as is"
         // See http://www.boost.org for most recent version including documentation.
         // 21 May 01 Initial complete version (Beman Dawes)
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         // argument, so would not work as intended. At that point the code was
         // turned into an actual .cpp file so it could be compiled and tested.
         #include <vector>
         #include <set>
         #include <iostream>
         #include <algorithm>
         #include <boost/shared_ptr.hpp>
         // The application will produce a series of
         // and by ordering relationship (std::set).
          Foo( int _x ) : x(_x) {}
          ~Foo() { std::cout << "Destructing a Foo with x=" << x << "\n"; }
          int x;
         int main()
  • C++ . . . . 3 matches
         C++ (pronounced "see plus plus") is a general-purpose computer programming language. It is a statically typed free-form multi-paradigm language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. During the 1990s, C++ became one of the most popular commercial programming languages.
         Bell Labs' Bjarne Stroustrup developed C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. New version of the standard (known informally as C++0x) is being developed.
         In C and C++, the expression x++ increases the value of x by 1 (called incrementing). The name "C++" is a play on this, suggesting an incremental improvement upon C.|}}
         C++은 범용성을 가진 컴퓨터 언어이다. 이는 정적으로 분류된(?) 다중 패라다임을 지원하는 언어이다. ( [:절차적프로그래밍 절차적 프로그래밍], [:GenericProgramming 제네릭 프로그래밍]을 지원한다.) 1990년대에 C++은 가장 상업적으로 인기가 있는 언어중의 하나가 되었다.
         벨 연구소의 [http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup]은 1980년대에 당시의 [C]를 개선해 C++을 개발하였다. (본디 C with Classes라고 명명했다고 한다.) 개선된 부분은 클래스의 지원으로 시작된다. (수많은 특징들 중에서 [가상함수], [:연산자오버로딩 연산자 오버로딩], [:다중상속 다중 상속], [템플릿], [예외처리]의 개념을 지원하는) C++ 표준은 1998년에 ISO/IEC 14882:1998로 재정되었다. 그 표준안의 최신판은 현재 ISO/IEC 14882:2003로서 2003년도 버전이다. 새 버전의 표준안(비공식 명칭 [C++0x])이 현재 개발중이다. [C]와 C++에서 ++이라는 표현은 특정 변수에 1의 값을 증가시키는 것이다. (incrementing이라 함). C++이라는 명칭을 이와 동일한 의미를 갖는데, [C]라는 언어에 증가적인 발전이 있음을 암시하는 것이다.
          * [RuminationOnC++]
          * [C++/SmartPointer]
         [ProgrammingLanguage], [C++0x]
         [[include(틀:ProgrammingLanguage)]]
  • CMM . . . . 3 matches
          * SE-CMM : Systems Engineering Capability Maturity Model. 시스템공학 분야에서 적용하여야 할 기본 요소들을 대상으로 현재의 프로세스 수준을 측정하고 평가하기 위한 모델로서 기본적인 프레임웍은 SW-CMM과 유사
          * IPD-CMM : Integrated Product Development Capability Maturity Model. 고객 요구를 보다 잘 충족시키기 위하여 소프트웨어 제품의 생명주기 동안에 각각 진행되는 프로젝트들이 적시에 협동할 수 있는 제품 개발체계를 도입하기 위한 모델
          * CMMI : Capability Maturity Model Integration. 모델을 사용하는 입장에서는 각각의 모델을 별개로 적용하는 것보다는 전체적 관점에서 시너지 효과를 내기 위해서는 어떻게 적용할 것인가에 대한 방안이 필요하게 되어 개발된 통합 모델
          * Wiki:XpAndTheCmm
  • CPP_Study_2005_1/BasicBusSimulation/남상협 . . . . 3 matches
         #include <fstream>
         #include <vector>
         #include <iostream>
         #include "BusSimulation.h"
         using namespace std;
         void main()
          ifstream fin("data.txt");
          BusSimulation busSimulation(fin);
          busSimulation.readTimeInput(cin,cout);
          busSimulation.printResult(cout);
         #define _BUS_SIMULATION_H_
         #include <iostream>
         #include <vector>
         #include <fstream>
         #include "Bus.h"
         using namespace std;
          ifstream &m_fin;
          BusSimulation(ifstream &fin) : m_fin(fin) {}
          istream& readTimeInput(istream &in, ostream &out);
          void increaseTime(int time);
  • CToAssembly . . . . 3 matches
         기계어 프로그램은 컴퓨터가 이해하고 직접 실행할 수 있는 프로그램이다. 어셈블리어 명령어는 기계어 명령어와 보통 일대일 관계로 대응하지만, 우리가 쉽게 이해할 수 있는 문자열을 사용한다. 고급언어 명령어는 영어에 매우 가까워서 프로그래머가 생각하는 방식과 자연스럽게 대응한다. 결국 어셈블리어나 고급언어 프로그램은 변환기라는 프로그램에 의해 기계어로 변환되야 한다. 이 변환기를 각각 어셈블러(assembler), 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다.
         C/C++같은 고급언어의 컴파일러는 고급언어를 어셈블리코드로 변환할 수 있다. GNU C/C++ 컴파일러의 -S 옵션은 프로그램 소스에 해당하는 어셈블리코드를 생성한다. 반복, 함수 호출, 변수 선언과 같은 기본적인 구조가 어셈블리어로 어떻게 대응하는지 알면 C 내부를 이해하기 쉽다. 이 글을 이해하기위해서는 컴퓨터구조와 Intel x86 어셈블리어에 익숙해야 한다.
         .globl main
         main:
         프로그램의 첫번째 줄은 주석이다. 어셈블러 지시어 .globl은 심볼 main을 링커가 볼 수 있도록 만든다. 그래야 main을 호출하는 C 시작라이브러리를 프로그램과 같이 링크하므로 중요하다. 이 줄이 없다면 링커는 'undefined reference to symbol main' (심볼 main에 대한 참조가 정의되지않음)을 출력한다 (한번 해봐라). 프로그램은 단순히 레지스터 eax에 값 20을 저장하고 호출자에게 반환한다.
         .globl main
         main:
         = 함수(subroutine) =
         .globl main
         main:
         call 명령어는 실행을 함수 foo로 옮긴다. foo의 ret 명령어는 실행을 다시 main의 호출 다음에 나오는 명령어로 옮긴다.
         프로그램의 메모리 일부를 스택으로 사용하기위해 비워두었다. Intel 80386 이상의 마이크로프로세서에는 스택 최상위 주소를 저장하는, 스택포인터(stack pointer)라는 esp 레지스터가 있다. 아래 그림 1은 스택에 저장된 세 정수값 49, 30, 72를 보여준다 (정수는 각각 4 바이트를 차지한다). esp 레지스터는 스택 최상위 주소를 저장한다.
         위로 쌓여가는 벽돌과 달리 Intel 컴퓨터의 스택은 아래방향으로 자란다. 그림 2는 명령어 pushl $15를 실행한후 스택을 보여준다.
         .globl main
         main:
         먼저 스택포인터의 값을 기준포인터 레지스터(base pointer register) ebp에 복사한다. 기준포인터는 스택의 다른 위치를 접근할때 사용할 고정된 기준점이다. foo를 호출한 코드에서도 ebp를 사용하므로, 값을 esp 값으로 대체하기 전에 스택에 복사한다. 명령어 subl $4, %esp는 스택포인터를 감소하여 정수를 담기위한 (4 바이트) 공간을 만든다. 다음 줄은 값 10을 ebp에서 4를 뺀 (4 바이트) 주소에 복사한다. 명령어 movl %ebp, %esp는 스택포인터를 foo 시작시 가졌던 값으로 되돌리고, popl %ebp는 기준포인터 레지스터의 값을 되돌린다. 스택포인터는 이제 foo를 시작하기 전과 같은 값을 가진다. 아래 표는 main 시작과 목록 4의 (main에서 반환을 제외한) 각 명령어 실행후 레지스터 ebp, esp와 3988에서 3999까지 스택 주소의 내용이다. 우리는 main의 첫 명령어 실행전에 ebp는 값 7000, esp는 값 4000을 가지며, 스택 주소 3988에서 3999까지 임의의 값 219986, 1265789, 86이 저장되있다고 가정한다. 또, main에서 call foo 다음에 나오는 명령어의 주소가 30000이라고 가정한다.
         .globl main
         main:
         목록 6은 C 프로그램과 어셈블리어 함수를 보여준다. 파일 main.c에 C 함수가 있고 sqr.s에 어셈블리어 함수가 있다. cc main.c sqr.s를 입력하여 파일들을 컴파일하고 같이 링크한다.
         반대도 매우 간단하다. 목록 7은 C 함수 print와 이 함수를 호출하는 어셈블리어를 보여준다.
  • Class/2006Fall . . . . 3 matches
          * [IntroduntionToAlgorithms]
          === [(zeropage)ArtificialIntelligenceClass] ===
          * Programming Report
          * [http://dblab.cse.cau.ac.kr/FS/index.html Home]
          * Team meeting #1 is on 27 Sep with msn messenger.
          * Team meeting #2 is on 3 Oct
          * Team meeting #3 is on 5 Oct
          * Team meeting #4 is on 10 Oct
          * Team meeting #5 is on 11 Oct
          * Team meeting #6 is on 21 Oct
          * Team meeting #7 is on 26 Oct
          * Team meeting #8 is on 9 Nov
          * Team meeting #9 is on 18 Nov
          * Final demonstration is on 5 Dec - 전체 최종본 제출
          === MobileComputingClass ===
          === IntermediateEnglishConversation ===
          * Persuaving Presentation until 6 Oct. I'll do it until 29 Sep.
          * Prepare debating about
          * Buying a College Degree is due to 3 Nov. But actually, I had to prepare Adultery.
          === Beggining English Conversation ===
  • CompleteTreeLabeling . . . . 3 matches
         [http://online-judge.uva.es/p/v102/10247.html 원문보기]
         === About [CompleteTreeLabeling] ===
         ||Input||standard input||
         모든 잎(leaf)의 깊이가 같고 모든 내부 노드의 차수(degree)가 k인(즉 분기계수(branching factor)가 k인) 트리를 k진 완전 트리(complete k-ary tree)라고 한다. 그런 트리에 대해서는 노드의 개수를 쉽게 결정할 수 있다.
         === Input ===
         === Sample Input ===
         || [조현태] || C || . || [CompleteTreeLabeling/조현태] ||
         || [하기웅] || C++ || 1시간 30분 || [CompleteTreeLabeling/하기웅] ||
  • ComposedMethod . . . . 3 matches
          void controlInitialize() {/* ... */}
          void controlTerminate() {/* ... */}
          controlInitialize();
          controlTerminate();
         개인적으로, 간단해보이지만 아주 중요한 이야기라 생각함. ProgrammingByIntention 의 입장에서, 또한 '같은 레벨의 추상화를 유지하라'라는 대목에서. (StepwiseRefinement 를 하면 자연스럽게 진행됨) --[1002]
  • ContestScoreBoard . . . . 3 matches
         [http://online-judge.uva.es/p/v102/10258.html 원문보기]
         === Input ===
         각 입력은 심사 큐의 스냅샷으로 구성되는데, 여기에는 1번부터 9번까지의 문제를 푸는 1번부터 100번까지의 경시 대회 참가 팀으로부터 입력된 내용이 들어있다. 각 줄은 세 개의 수와 경시 대회 문제 시간 L형식의 글자 하나로 구성된다. L은 C, I, R, U 또는 E라는 값을 가질 수 있는데 이 글자들은 각각 Correct(정답), Incorrect(오답), clarification Request(확인 요청), Unjudged(미심사), Erroneous submission(제출 오류)을 의미한다. 마지막 세 개의 케이스는 점수에 영향을 미치지 않는다.
         === Sample Input ===
         || [문보창] || C++ || 90min || [ContestScoreBoard/문보창] ||
         || [신재동] || C++ || 45min || [ContestScoreBoard/신재동] ||
         || 차영권 || C++ || 100min|| [ContestScoreBoard/차영권] ||
  • ContestScoreBoard/문보창 . . . . 3 matches
         #include <iostream>
         using namespace std;
         #define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t))
         const int NUMBER_TEAM = 101;
         const int NUMBER_PROBLEM = 10;
         const int TIME_PENALTY = 20;
          int timeProblem[NUMBER_PROBLEM];
          int penalty;
          int numberSuccessProblem;
         void inputInfoContest(ContestTeam * team, bool * isSumit);
         void initialize(ContestTeam * team, bool * isSumit);
         void initializeTeam(ContestTeam * team);
         void initializeIsSumit(bool * isSumit);
         int settingRank(bool * isSumit, int * rankTeam);
         void concludeRank(ContestTeam * team, int * rankTeam, int numberSumitTeam);
         void printRank(ContestTeam * team, int * rankTeam, int numberSumitTeam);
         int main()
          int numberCase;
          cin >> numberCase;
          cin.get();
  • Counting/문보창 . . . . 3 matches
         || 2006-01-10 Accepted 0.057 Minimum ||
         // 10198 - Counting
         #include "BigInteger.h"
         using BigMath::BigInteger;
         #define MAX_SIZE 1000
         static BigInteger Tn[MAX_SIZE+1];
          for (int i = 3; i <= MAX_SIZE; i++)
         int main()
          int n;
          while (cin >> n)
         [Counting]
  • Counting/하기웅 . . . . 3 matches
         #include <iostream>
         #include "BigInteger.h"
         using BigMath::BigInteger;
         #define MAX_NUM 1000
         int i, j, k, input;
         BigInteger number[MAX_NUM+1];
         void init(int num)
         int main()
          init(1000);
          while(cin>>input)
          cout<< number[input] <<endl;
  • CxImage 사용 . . . . 3 matches
         == include ==
         3. StdAfx.h 에 #include "ximage.h" 선언
         5. Additional 에 ./include
         6. link-> object/library modules 에 Debug/CxImages.lib
          m_pImage->Load(lpszPathName, CxImage::FindType(lpszPathName));
         App Class 에서 InitInstance() 의 아래부분 주석 처리
         //if (!ProcessShellCommand(cmdInfo))
  • Debugging . . . . 3 matches
         || Start Debugging, Go || *F5 || 디버깅 모드로 실행, 디버깅 모드 중에 F5를 다음 BreakPoint로 이동함 ||
         ||BreakPoint ||* F9 || 디버깅 모드에서 멈출곳을 지정 ||
         || Stop Debugging || shift + F5 || 디버깅 모드 중단 ||
         || Step Into || F11 || 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 함수 내부로 들어가서 계속 실행 ||
         || Step Out || shift+F11 || Step Into 로 함수안에 들어갔다가 나오고 싶을때 사용 ||
         || *Watch Window || 변수값이나 객체의 상태를 봄. 그 값을 변경시킬수도 있음 ||
         || Call Stack Window || 함수 호출 경로를 보여줌 ||
         ||BreakPoint ||* Ctrl + Shift + b || 디버깅 모드에서 멈출곳을 지정 ||
         || Step Into || F5 || 디버깅 모드에서 한 라인씩 실행 - 함수를 만나면 함수 내부로 들어가서 계속 실행 ||
         || Resume(go)|| F8 || 다음 BreakPoint 지점으로 이동 ||
          * [http://korean.joelonsoftware.com/Articles/PainlessBugTracking.html 조엘아저씨의 손쉬운 버그 추적법]
         [http://zeropage.org/~namsangboy/Score.zip Debugging/Seminar2005자료소스]
  • EnglishSpeaking/TheSimpsons/S01E05 . . . . 3 matches
         = Bart the General =
         Friend : Nelson's at the Elm Street Video Arcade.
         Bart : Intelligence indicates he shakes down kids for quarters at the arcade.
         Herman : Then he heads to the Quick-E-Mart for a cherry Squishy.
         Then that's where we'll hit him.
         When he leaves the Quick-E-Mart,
         we start the saturation bombing.
         We got the water balloons?
         Is it okay if they say "Happy Birthday" on the side?
         Herman : Well, I'd rather they say " Death From Above," but I guess we're stuck.
         Okay, our main force will be split into two groups.
         One will circle around this way to cut off the enemy's retreat,
         the other will drive in this way, closing the trap.
         It's a classic pincers movement. It can't fail against a ten-year-old.
         Friend : Nelson's at the arcade, General.
         I thought I'd never hear the screams of pain...
         or see the look of terror in a young man's eyes.
         [English Speaking/2011년스터디]
  • ErdosNumbers/차영권 . . . . 3 matches
         #include <iostream.h>
         #include <cstring>
         #define MAX_LENGTH 100
          int erdosNumber;
         void checkErdosNumberTo0(Author *p, int n);
         void checkErdosNumberTo1(Author *p, char *c, int n);
         void checkErdosNumberTo2(Author *p, int n);
         bool isThere(Author *p, int n);
         int main()
          int scenario=1;
          int nDataBase, nSearch;
          int count = 0, n = 0, m = 0, number = 0;
          int i, j, k, l;
          int saveBound[10];
          cin >> nDataBase >> nSearch;
          cin.get();
          cin.getline(temp, MAX_LENGTH);
          int save[10] = {0, };
          int count2 = 0;
          continue;
  • Euclid'sGame/강소현 . . . . 3 matches
         ||Problem||2348||User||talin0528||
         public class Main{
          public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          while(sc.hasNextInt()){
          int r1 = sc.nextInt();
          int r2 = sc.nextInt();
          private static void playGame(int r1, int r2) {
          int g, r, count=0;
          System.out.println("Ollie wins");
          System.out.println("Stan wins");
  • FileInputOutput . . . . 3 matches
         === in C++ ===
         #include <fstream>
         using namespace std;
         int main()
          ifstream fin("input.txt"); // fininput.txt를 연결
          int a,b;
          fin >> a >> b; // cin으로 화면에서 입력받는다면, fin은 연결된 파일로부터 입력받는다.
         input.txt
         fin = file('input.txt')
         a,b=[int(i) for i in fin.read().split()]
         print >> fout,(a+b) #혹은 fout.writeline( str(a+b)+'n' )
         fin.close()
         input.txt
         String inputString;
         InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName));
         while((inputString = br.readLine()) != null) {
          buf = buf + inputString ;
          System.out.println("Error : "+ e.toString()); {}
  • GDBUsage . . . . 3 matches
         The GNU Debugger, usually called just GDB, is the standard debugger for the GNU software system. It is a portable debugger that runs on many Unix-like systems and works for many programming languages, including C, C++, and FORTRAN.
         #include <stdio.h>
         #include <unistd.h>
         #include <stdlib.h>
         #define BUFSIZE 30
         int main(int argc, char** argv)
          int fd[2];
          int state;
         Copyright 2005 Free Software Foundation, Inc.
         GDB is free software, covered by the GNU General Public License, and you are
         welcome to change it and/or distribute copies of it under certain conditions.
         Type "show copying" to see the conditions.
         There is absolutely no warranty for GDB. Type "show warranty" for details.
         This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1".
         6 #define BUFSIZE 30
         8 int main(int argc, char** argv)
         10 int fd[2];
         13 int state;
         Starting program: /home/staff/sapius/source/ipc_test/pipe1 15
         Breakpoint 1 at 0x80484cc: file pipe1.c, line 21.
  • Gof/Composite . . . . 3 matches
         == Intent ==
         드로우 에디터나 회로설계 시스템과 같은 그래픽 어플리케이션은 단순한 컴포넌트들의 차원을 넘어서 복잡한 도표들을 만들어내는데 이용된다. 사용자는 더 큰 컴포넌트들을 형성하기 위해 컴포넌트들을 그룹화할 수 있고, 더 큰 컴포넌트들을 형성하기 위해 또 그룹화 할 수 있다. 단순한 구현방법으로는 Text 나 Line 같은 그래픽의 기본요소들에 대한 클래스들을 정의한 뒤, 이러한 기본요소들에 대해 컨테이너 역할을 하는 다른 클래스에 추가하는 방법이 있다.
         Line, Rectangle, Text 와 같은 서브 클래스들은 (앞의 class diagram 참조) 기본 그래픽 객체들을 정의한다. 이러한 클래스들은 각각 선이나 사각형, 텍스트를 그리는 'Draw' operation을 구현한다. 기본적인 그래픽 구성요소들은 자식요소들을 가지지 않으므로, 이 서브 클래스들은 자식요소과 관련된 명령들을 구현하지 않는다.
          * Leaf (Rectangle, Line, Text, etc.)
          * Child ordering
          * 성능향상을 위한 caching
         우리는 간단한 방법으로 Cabinet 나 Bus 와 같은 다른 equipment 컨테이너를 정의할 수 있다. 이로서 우리가 개인용 컴퓨터에 equipment들을 조립하기 위해 (꽤 간단하게) 필요로 하는 모든 것들이 주어졌다.
         Cabinet* cabinet = new Cabinet ("PC Cabinet");
         cabinet->Add (chassis);
         bus->Add (new Card("16Mbs Token Ring"));
         chassis->Add (new FloppyDisk ("3.5in Floppy"));
         cout << "The net price is " << chassis->NetPrice () << endl;
         CompositePattern의 예는 거의 모든 객체지향 시스템에서 찾을 수 있다. Smalltalk 의 Model/View/Container [KP88] 의 original View 클래스는 Composite이며, ET++ (VObjects [WGM88]) 이나 InterViews (Styles [LCI+92], Graphics [VL88], Glyphs [CL90])등 거의 대부분의 유저 인터페이스 툴킷과 프레임워크가 해당 과정을 따른다. Model/View/Controller 의 original View에서 주목할만한 점은 subview 의 집합을 가진다는 것이다. 다시 말하면, View는 Component class 이자 Composite class 이다. Smalltalk-80 의 Release 4.0 은 View 와 CompositeView 의 서브클래스를 가지는 VisualComponent 클래스로 Model/View/Controller 를 변경했다.
         RTL Smalltalk 컴파일러 프레임워크 [JML92] 는 CompositePattern을 널리 사용한다. RTLExpression 은 parse tree를 위한 Component 클래스이다. RTLExpression 은 BinaryExpression 과 같은 서브클래스를 가지는데, 이는 RTLExpression 객체들을 자식으로 포함한다. 이 클래스들은 parse tree를 위해 composite 구조를 정의한다. RegisterTransfer 는 프로그램의 Single Static Assignment(SSA) 형태의 중간물을 위한 Component 클래스이다. RegisterTransfer 의 Leaf 서브클래스들은 다음과 같은 다른 형태의 static assignment 를 정의한다.
          * source register 를 가지지만, destination register 를 가지지 않는, register가 해당 루틴이 리턴 된 뒤에 이용되는 assignment
          * destination register 를 가지지만, source register 를 가지지 않는, 해당 루틴이 시작되기 전에 register 가 assign되는 assignment
         Another subclass, RegisterTransferSet, is a Composite class for representing assignments that change several registers at once.
         Another example of this pattern occurs in the financial domain, where a portfolio aggregates individual assets. You can support complex aggregations of assets by implementing a portfolio as a Composite that conforms to the interface of an individual asset [BE93].
         CompositePattern의 또다른 예는 각각의 자산들을 포함하는 portfolio인 financial domain 에서 나타난다. portfolio 를 각각의 asset 의 인터페이스를 구성하는 Composite 로 구현함으로써 복잡한 asset의 포함관계를 지원할 수 있다.
          * 종종 컴포넌트-부모 연결은 ChainOfResponsibilityPattern에 이용된다.
  • HelloWorld . . . . 3 matches
         프로그래밍의 첫걸음으로 HelloWorld를 출력하는 관습은 1978년에 출판된, 브라이언 커니핸과 데니스 리치가 쓴 "The C Programming Language"라는 책에서 비롯되었다.
         #include <stdio.h>
         int main(void)
          printf("Hello, World!n");
         #include <iostream>
         using namespace std;
         int main() {
         print "Hello, World!"
         #/usr/bin/perl
         print "Hello World!n";
         class String
          public static void main(String[] args) {
          System.out.println("Hello, World!");
          public static void main(String[] args){
          public void say(String what){
          System.out.println(what);
          include_once "class.CHTemplate.inc";
          $tpl->register("MessageString", "Hello, World!");
          $tpl->pprint();
         <H1> {MessageString} </H1>
  • HelpForBeginners . . . . 3 matches
         위키위키의 문법을 지금 당장 알고싶으신 분은 HelpOnEditing 페이지로 가시기 바랍니다.
         위키위키에 대하여 좀 더 배우고 싶으신 분은 Wiki:WhyWikiWorks 와 Wiki:WikiNature 를 읽어보시기 바라며, Wiki:WikiWikiWebFaq 와 Wiki:OneMinuteWiki 도 도움이 될 것 입니다.
          * FindPage: 다양한 방법으로 찾아보기
          * TitleIndex: 이 위키위키에 있는 모든 쪽 목록
          * WordIndex: 위키위키 페이지 이름을 구성하고 있는 단어들의 목록(따라서 이 위키위키의 주된 콘셉트를 보여줍니다.)
         도움말은 HelpContents 혹은 HelpIndex를 참고하세요.
  • HighResolutionTimer . . . . 3 matches
         A counter is a general term used in programming to refer to an incrementing variable. Some systems include a high-resolution performance counter that provides high-resolution elapsed times.
         If a high-resolution performance counter exists on the system, the QueryPerformanceFrequency function can be used to express the frequency, in counts per second. The value of the count is processor dependent. On some processors, for example, the count might be the cycle rate of the processor clock.
         The '''QueryPerformanceCounter''' function retrieves the current value of the high-resolution performance counter (if one exists on the system). By calling this function at the beginning and end of a section of code, an application essentially uses the counter as a high-resolution timer. For example, suppose that '''QueryPerformanceFrequency''' indicates that the frequency of the high-resolution performance counter is 50,000 counts per second. If the application calls '''QueryPerformanceCounter''' immediately before and immediately after the section of code to be timed, the counter values might be 1500 counts and 3500 counts, respectively. These values would indicate that .04 seconds (2000 counts) elapsed while the code executed.
  • HowToBuildConceptMap . . . . 3 matches
         from Learning, Creating, Using Knowledge
          1. Identify a focus question that addresses the problem, issues, or knowledge domain you wish to map. Guided by this question, identify 10 to 20 concepts that are pertinent to the question and list these. Some people find it helpful to write the concept labels on separate cards or Post-its so taht they can be moved around. If you work with computer software for mapping, produce a list of concepts on your computer. Concept labels should be a single word, or at most two or three words.
          * Rank order the concepts by placing the broadest and most inclusive idea at the top of the map. It is sometimes difficult to identify the boradest, most inclusive concept. It is helpful to reflect on your focus question to help decide the ranking of the concepts. Sometimes this process leads to modification of the focus question or writing a new focus question.
          * Work down the list and add more concepts as needed.
          * Begin to build your map by placing the most inclusive, most general concept(s) at the top. Usually there will be only one, two, or three most general concepts at the top of the map.
          * Next selet the two, three or four suboncepts to place under each general concept. Avoid placing more than three or four concepts under any other concept. If there seem to be six or eight concepts that belong under a major concept or subconcept, it is usually possible to identifiy some appropriate concept of intermediate inclusiveness, thus creating another level of hierarchy in your map.
          * Connect the concepts by lines. Label the lines with one or a few linking words. The linking words should define the relationship between the two concepts so that it reads as a valid statement or proposition. The connection creates meaning. When you hierarchically link together a large number of related ideas, you can see the structure of meaning for a given subject domain.
          * Rework the structure of your map, which may include adding, subtracting, or changing superordinate concepts. You may need to do this reworking several times, and in fact this process can go on idenfinitely as you gain new knowledge or new insights. This is where Post-its are helpful, or better still, computer software for creating maps.
          * Look for crosslinks between concepts in different sections of the map and label these lines. Crosslinks can often help to see new, creative relationships in the knowledge domain.
          * Specific examples of concepts can be attached to the concept labels (e.g., golden retriver is a specific example of a dog breed).
          * Concept maps could be made in many different forms for the same set of concepts. There is no one way to draw a concept map. As your understanding of relationships between concepts changes, so will your maps.
  • HowToStudyXp . . . . 3 matches
         ExtremeProgramming을 어떻게 공부할 것인가
          * XP Explained (Kent Beck) : XP 선언서
          * XP Installed (Ron Jeffries et al) : C3 프로젝트에 적용한 예, 얻은 교훈 등
          * Planning XP (Kent Beck, Martin Fowler) : 계획 부분만 설명 (관리자, 코치용)
          * ["Refactoring"] (by Martin Fowler) : 리팩토링에 대한 최고의 책
          * The Timeless Way of Building : 패턴 운동을 일으킨 Christopher Alexander의 저작. On-site Customer, Piecemeal Growth, Communication 등의 아이디어가 여기서 왔다.
          * XP in Practice (Robert C. Martin et al) : 두 세 사람이 짧은 기간 동안 간단한 프로젝트를 XP로 진행한 것을 기록. Java 사용. (중요한 문헌은 아님)
          * XP Examined (논문 모음집) : XP 컨퍼런스에 발표된 논문 모음
          * Surviving Object-Oriented Projects (Alistair Cockburn) : 얇고 포괄적인 OO 프로젝트 가이드라인
          * The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
          * IEEE Software/Computer, CACM, ["SoftwareDevelopmentMagazine"] 등에 실린 기사
          * 유즈넷, 메일링 리스트, OriginalWiki의 논의들
          * http://groups.yahoo.com/group/extremeprogramming
          * http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
          * [http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&newwindow=1&group=comp.software.extreme-programming news:comp.software.extreme-programming]
          * http://groups.yahoo.com/group/refactoring
          * http://groups.yahoo.com/group/agile-testing
          * [http://groups.google.co.kr/groups?dq=&num=25&hl=ko&lr=&ie=UTF-8&newwindow=1&group=comp.object&start=0 news:comp.object]
          * XP mailing list
          * OriginalWiki
  • InnoSetup . . . . 3 matches
         http://www.jrsoftware.org/isinfo.php
         Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.
          * [http://www.jrsoftware.org/is3rdparty.php Inno Setup Third-Party Files]
  • InterMap . . . . 3 matches
         #format plain
         PyWiki http://www.voght.com/cgi-bin/pywiki?
         UseMod http://www.usemod.com/cgi-bin/wiki.pl?
         MeatBall http://www.usemod.com/cgi-bin/mb.pl?
         MoinMoin http://purl.net/wiki/moin/
         PythonInfo http://www.python.org/cgi-bin/moinmoin/
         SoomSori http://soomsori.net/moin.cgi/
         Seminar http://xper.org/wiki/seminar/
         Caucse http://www.caucse.net/cgi-bin/moin/moin.cgi/
         Aladdin http://www.aladdin.co.kr/catalog/book.asp?ISBN=
         Nappingin http://nappingin.cafe24.com/wiki/wiki.php/
         Acup http://zeropage.org/~gochi/cgi-bin/wiki/moin.cgi/ # 자판기(객체모델링)프로젝트, 인공지능 오델로 프로젝트 위키
         SmallGaia http://neocoin.nameip.net:8000/w / #NeoCoin 의 개인 위키로 주소가 확정되지 않음
         PurePond http://purepond.cafe24.com/wiki/moin.cgi/ # 임인택의 개인위키
         NowThen http://zeropage.org/wikis/nowthen/
         Wiz http://zeropage.org/~wiz/cgi-bin/MoinMoin/wiki-moinmoin/moin.cgi/ # Wiz(창섭) 의 개인 위키
         NowThen2004 http://zeropage.org/wikis/nowthen2004/ #지금그때2004 후의 위키 정리 페이지
         XperSeminar http://xper.org/wiki/seminar/ # Xper Seminar
         BioinfoWiki http://biohackers.net/wiki/
  • IpscAfterwords . . . . 3 matches
         후.. 좌절(아까 떡볶이 먹을때에도 너무 강조한것 같아서 이제는 다시 자신감 회복모드 중입니다만) 임다. -_-; 결국 5시간동안 한문제도 못풀었네요. 처음 경험해본 K-In-A-Row 문제를 풀때나 Candy 문제를 풀때만해도 '2-3문제는 풀겠다' 했건만. 어흑;[[BR]]
          * 전에 K-In-A-Row 같은 경우는 일종의 StepwiseRefinement 의 형식이 나와서 비교적 코딩이 빠르게 진행되었었고, (비록 답은 틀렸지만) Candy 문제의 경우 덕준이가 빨리 아이디어를 내어서 진행이 빨랐었는데, 실전에서는 그런 경우들이 나오지 않아 버겨웠던듯 하네요.
          * 중반부로 들어가면서 사람들이 문제들을 못풀다보니 팀플레이도 흐트러진것 같습니다. 이전에 K-In-A-Row 풀때나 Candy 풀때만해도 실마리를 잡아서 '풀 수 있겠다' 라고 생각해서인지 팀플레이가 잘 되었던거 같은데.. 역시 어려울때 잘하기란 힘든것 같네요.
          * IPSC Winner 가 발표되었네요. 재밌게도 Open 과 Second 둘 다 러시아이고, 양쪽 팀 다 Pascal 을 이용했다는. ^^
         석천군 팀이 B번 문제(Job Balancing)를 풀긴 풀었으나 시간이 너무 걸려서 옵티마이징을 필요로 했습니다. 제가 O(m*n^2)에서 O(m*n)으로 만들어줬는데, 그것으로도 부족했습니다. 집에 돌아와서 잠을 자다가(NoSmok:포앵카레문제해결법 ) 몇 가지 아이디어가 떠오르더군요. 오늘 아침에 일어나서 30분 정도 뚝닥거려서 B Difficult Set을 5초 안에 끝내는 코드를 만들었습니다. 어떻게 사고했냐구요? TDD로 원소 하나 짜리, 두 개 짜리, 세 개 짜리, ... 를 하다보니까 일반해가 보이더군요. 역시 마음에 여유가 있으면 잘 되는 것 같습니다.. see also IpscLoadBalancing
  • IpscLoadBalancing . . . . 3 matches
         """b.py Load Balancing
         from cStringIO import StringIO
         def doAll(aString):
          lines=parseLines(aString)
          for eachLine in lines:
          yield getRounds(eachLine)
         def parseLines(aString):
          stream=StringIO(aString)
          numOfElements=int(lexer.get_token())
          thisLine=[]
          for i in range(numOfElements):
          thisLine.append(int(lexer.get_token()))
          yield thisLine
          numOfElements=int(numOfElements)
         class BalancingImpossibleException(Exception):
          raise BalancingImpossibleException
          except BalancingImpossibleException:
          for i in range(listLen):
          last=min(leftSum-avg*i,rightSum-avg*(listLen-i-1),last)
         class TestLoadBalancing(unittest.TestCase):
  • JSP . . . . 3 matches
         == Install and Excute ==
         1. http://tomcat.apache.org 에서 4.1 v 받아서 Install
         == JSP Programming ==
         3. C:\Program Files\Apache Group\Tomcat 4.1\bin 의 startup
         == Index ==
  • JTD 야구게임 짜던 코드. . . . . 3 matches
         import javax.swing.*;
          public static int makeFirstNumber(void)
          int a;
          a = (int)(random() % 1000);
          public static int makeSecondNumber(void)
          int a;
          a = (int)(random() % 1000);
          public static int makeThirdNumber(void)
          int a;
          a = (int)(random() % 1000);
          public static char checkNumbers(int number, int a)
          public static int userNumber(void)
          String user;
          int user2;
          int number;
          user = JOptionPane.showInputDialog(null,"write in a three digit number");
          user2 = Integer.parseInt(user);
          public static void main(String [] args)
          int number;
          int user;
  • JTDStudy/첫번째과제/영준 . . . . 3 matches
         import javax.swing.JOptionPane;
          public static void main(String [] args){
          int[] num = new int[3];
          int i, j ;
          num[0] = (int)(Math.random()*10);
          num[1] = (int)(Math.random()*10);
          num[2] = (int)(Math.random()*10);
          int strikeCounter = 0, ballCounter = 0;
          int[] temp = new int[3];
          int answer = Integer.parseInt(JOptionPane.showInputDialog("세자리수를 입력하세요"));
  • JTDStudy/첫번째과제/장길 . . . . 3 matches
          public int[]ball = new int[3];
          public int count= 0;
          public int creatBall() {
          return (int) (Math.random()*1000);
          public int getBall(int i) {
          public void setBall(int number) {
          for(int i = 1 ; i < 101 ; i*=10){
          ball[count++]= ((int)number/(100/i));
          public int dBall[]= new int[3];
          public int pBall[]= new int[3];
          private int strike=0;
          private int ball= 0;
          private boolean win= true;
          public Judgement(int[] dealer, int[] player) {
          for(int i = 0; i < 3; i++){
          for(int j= 0; j<3 ; j++){
          if( strike == 3) win= false;
          public int getStrikeConclusion() {
          public int getBallConclusion() {
          return win;
  • JTDStudy/첫번째과제/정현 . . . . 3 matches
          for(int i=0;i<100;i++) {
          String number= extractor.getRandomBall();
          game.inputNumber("152");
          game.inputNumber("123");
         public class GameMain {
          public static void main(String[] args) {
          Scanner input= new Scanner(System.in);
          System.out.println("baseball game");
          String number= input.nextLine();
          baseBall.inputNumber(number);
          System.out.println("what are you doing?");
          System.out.print(baseBall.getStrike() + " strike, ");
          System.out.println(baseBall.getBall() + "ball");
          System.out.println("good");
          String playerInput;
          private String number;
          public void inputNumber(String string) {
          number= string;
          public int getStrike() {
          public int getBall() {
  • Java2MicroEdition/MidpHttpConnectionExample . . . . 3 matches
         package com.minnysunny.mobilerssreader.spike;
          String str = sgh.getContent2();
         package com.minnysunny.mobilerssreader.spike;
         import java.io.DataInputStream;
          private DataInputStream dis;
          public SpikeGetHtml(String url) {
          init(url);
          ex.printStackTrace();
          private void init(String url) throws IOException {
          dis = httpConn.openDataInputStream();
          ex.printStackTrace();
          public String getContent() {
          String ret = "";
          for(int i=0; i<4; ++i) {
          ex.printStackTrace();
          public String getContent2() {
          String ret = null;
          ret = new String(buffer);
          ex.printStackTrace();
  • JollyJumpers/Leonardong . . . . 3 matches
          for i in range( 1, aN ):
          if i not in aSet:
          for i in range( len(aSeries) - 1 ):
          inputString = sys.stdin.readline()
          seriesChar = inputString.split()
          seriesInt = []
          for char in seriesChar:
          seriesInt.append( int(char) )
          print JollyJumper().statementForSeries( seriesInt )
         if __name__ == '__main__':
         ## unittest.main()
  • JollyJumpers/강소현 . . . . 3 matches
         ||Problem|| 2575||User||talin0528||
         public class Main{
          public static void main(String [] args)
          Scanner scan = new Scanner(System.in);
          int[] arr = new int[3000];
          while(scan.hasNextInt()){
          int size = scan.nextInt();
          int i;
          arr[i] = scan.nextInt();
          System.out.println("Jolly");
          System.out.println("Not jolly");
          public static boolean isJolly(int [] arr, int size){
          int [] jollyNum = new int [size];
          for(int i=0; i<size-1; i++){
          for(int i=1; i<=size-1;i++){
  • JollyJumpers/김회영 . . . . 3 matches
         #include<iostream>
         using namespace std;
         #include<math.h>
         bool seqCheck(int* array,int count);
         void main()
          int input=0;
          int count=0;
          int oldInput=0;
          int total=0;
          int array[3000]={0,};
          while(cin>>input)
          array[count-2]=abs(oldInput-input);
          oldInput=input;
         bool seqCheck(int* array,int count)
          int checker=0;
          for(int i=count-1;i>0;i--)
          for(int j=0;j<count-1;j++)
  • LIB_1 . . . . 3 matches
          // Print Logo
          char *sen2 = "Check Running Task \n";
          char *sen3 = "Task Name Priority StackSize Running \n";
          LIB_VRAM_STRING(0,0,sen,0x04);
          LIB_VRAM_STRING(0,1,sen1,0x07);
          LIB_VRAM_STRING(0,2,sen2,0x07);
          LIB_VRAM_STRING(0,4,sen3,0x09);
          // Show the task delay , usage and
          LIB_VRAM_STRING(0,12,"Total Interrupt Count :\n",0x09);
          LIB_VRAM_NUM(26,12,LIB_INT_COUNT,0x07);
         LIB_create_task (char* string,int,&task_point,task_size) 함수는
         void main()
          // init Scheduler Queue , TICKS and Parallel Port
          LIB_Init_Schedu(); // 스케쥴링을 위한 우선순위 큐를 초기화 하고
          LIB_init_prl(0); // 패러럴 포트를 정리한다.
          // create The Sample Task 1,2
         #if !defined(DEBUG)
          // init ISR
          LIB_INIT_ISR();
          LIB_VRAM_STRING(0,0," :: FATAL ERROR :: \n",0x07);
  • LinkedList/영동 . . . . 3 matches
         #include<iostream>
         using namespace std;
         struct Node{ //Structure 'Node' has its own data and link to next node
          int data; //Data of node
          Node(int initialData){ //Constructor with initializing data
          data=initialData; //Assign data
          Node(){} //An empty constructor to reduce warning in compile time
         int enterData(); //Function which enter the data of node
         void displayList(Node * argNode); //Function which displays the elements of linked list
         Node * allocateNewNode(Node * argNode, int argData);//Function which allocate new node in memory
         int main()
          Node * firstAddress=new Node(enterData());//Create the first address to linked list
          Node * currentNode;//Create temporary node which indicates the last node of linked list
          //Create the next node to linked list
          for(int i=0;i<7;i++)
          Node * tempNode; //Temporary node to tour linked list
          else //Go to the next node if there is next node
         Node * allocateNewNode(Node * argNode, int argData)
         int enterData()
          int returnData;
  • Linux/RegularExpression . . . . 3 matches
         = Mastering Regular Expressions, 2nd Edition =
         == Ch1 Introduction to Regular Expressions ==
          * ^(caret) : 시작을 의미함. ^cat은 cat으로 시작하는 문자...(cats,cater,caterer...).in the line rather real text
          * $(dollar) : 끝을 의미함. cat$은 cat으로 끝나는 문자 ...(blackcat, whitecat, ....) in the line rather real text
          * ()(parentheses) : a(a|b)cde 하면 aacde, abcde 둘다 해당 된다. [a|b]하면 | 를 문자로 처리 하지만 (a|b) 로 ()를 씌어 주면 |를 OR로 해석한다.
         print, space, uppper, xdigit가 있다.
         .{3,4}er ('er'앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)
         (9) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용
         korea|japan|chinese (korea, japan, chinese 중 하나)
         예 : $ who | grep 'hgkim' <= hgkim이라는 사용자가 login 해 있는지를 알아봄
         예: $ grep 'telnet' /etc/inetd.conf
         int ereg(string givenPattern, string givenString, array matched);
         - givenString을 "string1stringAstring2stringBstring3 ... string9stringI" 로 주어져 있다고 하자. 이때 stringA, stringB, ... , stringI는 NULL 이어도 상관이 없다(즉 givenString은 "string1string2string3 ... string9" 인 경우임).
         - givenString이 위와 같이 주어진 경우,
         givenPattern은 "(pattern1)stringA(pattern2)stringB(pattern3) ... (pattern9)stringI"로 입력하여야 한다. 즉 pattern1, pattern2, ..., pattern9는 각각 string1, string2, ... , string9에서 찾고자하는 정규식인 것이다.
         - 이때 pattern1이 string1에서 발견한 패턴은 $matched[1]에 저장되고, pattern2가 string2에서 발견한 패턴은 $matched[2]에 저장되고, ..., pattern9가 string9에서 발견한 패턴은 $matched[9]에 저장된다. PHP3의 경우 ereg에서는 최대 9개 까지의 pattern을 찾을 수 있도록 설정되어 있음에 유의하자.
         - 그리고 $matched[0]에는 $matched[1]stringA$matched[2]stringB ... $matched[9]stringI가 저장된다.
         - eregi는 case insensitive
         코드 => print(ereg ("(.*)ef([abc].*)","abcdefabc",$matched));
         print("<br>");
  • Linux/필수명령어/용법 . . . . 3 matches
         - Enter login name for new account (^C to quit): blade
         - Editing information for new user [blade]
         - banner linux | lqr ,,디폴트 프린터에 확대한 글자를 출력한다.
         - document1 document2 differ: char 128, line 13 ,,차이 발견
         The Oct 1 15:57:23 KST 1996
         -i : 블록 사용 대신 incode 사용 정보를 보고한다.
         일반적으로 echo 명령은 프롬프트 상에서 사용되는 일은 없다. 하지만 스크립트 작성시 번번히 사용된다. 셸 스크립트 상에서 echo 명령은 BASIC의 PRINT 명령이나 C 언어의 printf() 함수와 같이 메시지를 출력하는 데에 자주 사용된다. 또한 전혀 필요없을 것 같은 echo의 -n 옵션도 스크립트 상에서는 유용하게 사용될 수 있다.
         - $ echo "The RedHat !"
         - The RedHat !
         - $ echo -e 'Linux\RedHat !'
         - Linux RedHat !
         : 풀 스크린 에디터를 사용할 수 없는 열악한 환경의 터미널을 위한 라인 에디터(line editor)이다.
         find
         : 원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 특정 디렉토리들을 순회하면서 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다.
         - find [ 디렉토리 ] 탐색 조건
         -links : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.
         -exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.
         - $ find /bin -name ro*
         - $ find -user qwfwq -exec cat {} list\;
         finger
  • Lotto/강소현 . . . . 3 matches
         ||Problem||2245||User||talin0528||
         public class Main{
          public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          while(sc.hasNextInt()){
          int k = sc.nextInt();
          int[] S = new int [k];
          for(int i=0; i<k; i++)
          S[i] = sc.nextInt();
          printPossibleNum(S);
          private static void printPossibleNum(int[] S) {
          int num = (int) (Math.pow(2,S.length-6)-1);
          int [] bin = decToBin(num);
          int count = 0;
          for(int i=0; i<S.length; i++){
          if(bin[S.length-i-1]==0){
          System.out.print(S[i]+" ");
          System.out.println(S[i]);
          num = increase(bin);
          System.out.println("");
  • MFC/MessageMap . . . . 3 matches
          * 사용 예 : 어떤 클래스가 view 클래스의 멤버 변수이다. 해당 클래스는 파일을 다운로드 받는 클래스인데 해당 클래스에서 다운로드가 끝났을 경우 view에 있는 serialize 함수를 실행해야 한다. 허나 현재 view클래스가 그 해당 클래스를 멤버로 가지고 있기에 include 로 해당 클래스에서 view 클래스를 포함할 수도 없고, 또 view 클래스의 현재 실행되는 객체를 얻을 방법도 마땅히 없다. 이때 해당 클래스에서 다운로드가 끝난 시점에서 다운로드가 끝났다는 메시지를 발생시켜서 view에 있는 serialize 함수를 실행시킬 수 있다. 이게 바로 사용자 정의 메시지 발생을 이용한 사례..
         #define UM_ACCEPTCLIENT (WM_USER+10) // 사용자 정의 메시지를 정의 한다.
         begin Message map
         in ''application_name.h''
         class CEx14App : public CWinApp
          virtual BOOL InitInstance();
          // NOTE - the ClassWizard will add and remove member functions here.
          // DO NOT EDIT what you see in these blocks of generated code !
         in ''application_name.cpp''
         BEGIN_MESSAGE_MAP(CEx14App, CWinApp)
          // NOTE - the ClassWizard will add and remove mapping macros here.
          // DO NOT EDIT what you see in these blocks of generated code!
          ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
          ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
          // Standard print setup command
          ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
          클래스의 정의 부분에 DECLARE_MESSAGE_MAP()을 포함했다면 그 클래스의 구현 부분에는 반드시 BEGIN_MESSAGE_MAP(), END_MESSAGE_MAP()매크로가 반드시 추가되어야 한다. 이 부분에서는 WM_COMMAND 형태를 갖는 메시지 만을 처리하고 있다.
         in ''CAboutDlg implementation''
          //{{AFX_DATA_INIT(CAboutDlg)
          //}}AFX_DATA_INIT
  • MFC/Print . . . . 3 matches
         #define _MFC_
         = Print in MFC =
          * CView::OnPreparePrinting()
          페이지 카운트를 계산한다. DoPreparePrinting() 호출
          * CView::OnBeginPrinting()
          * CView::OnPrint()
          * CView::OnEndPrinting()
          뷰클래스의 5개의 멤버함수는 프로그래머가 재정의 해야한다. 최소한 5개중에서 OnPreparePrinting(), OnPrepareDC(), OnPrint()는 구현해야한다.
          프린터 작업과 관계되는 모든 함수는 CPrintInfo 형의 객체 포인터가 인자로 전달된다. 이 객체는 프린터 작업을 관리하는 함수들을 연결시켜준다.
         = CPrintInfo =
         || m_pPD || CPrintDialog 객체에 대한 포인터. 출력 대화 상자를 나타낸다. ||
         || m_bPreview || Print Preview 가 선택되면 TRUE, 아니면 FALSE ||
         || m_bContinuePrinting || TRUE로 설정되면 출력 루프를 계속한다. FALSE가 되면 프린트 작업 종료. ||
         || m_nCurPage || UINT형식을 갖는 값으로서 현재 페이지 번호를 저장 ||
         || m_nNumPreviewPages || UINT preview 우니도우에 나타나 있는 페이지들의 번호 1 or 2 ||
         || m_lpUserData || LPVOID 형식을 갖는다. 생성한 객체에 대한 포인터를 저장한다. 출력작업에 관한 추가 정보를 저장하는 객체를 생성할 수 있도록 한다. CPrintInfo 객체와 연계 시킬 수 있도록 한다. ||
         || m_strPageDesc || CString 객체로 프린트 preview 동안에 페이지 번호를 나타내기 위해 프레임 웍에서 사용되는 포맷 문자열을 포함한다. ||
         || m_bDocObject || 응용프로그램이 lPrint 인터페이스를 통하여 출력하면 TRUE로 설정되며, 그렇지 않은 경우에는 FALSE이다. ||
         || m_dwFlags || m_bDocObject가 TRUE일때만 유호. DWORD값으로 lPrint::Print에 전달된 플래그 ||
         || m_nOffsetPage || m_bDocObject가 TRUE일때만 유효. lPrint job 안에서 첫번째 페이지 offset을 준다. ||
  • Memo . . . . 3 matches
         http://www.freenetpages.co.uk/hp/alan.gauld/tutintro.htm
         http://search.costcentral.com/search?p=Q&srid=S9%2d3&lbc=costcentral&ts=custom&w=ThinkPad&uid=975848396&method=and&isort=price&srt=150
         [http://kin.naver.com/knowhow/entry.php?eid=sXanZUDMReh3tKhs1VJ30OlMQ3piSgKm 마지막 사진의 진실은...?]
         RFC 791 Internet Protocol
         RFC 792 Internet Control Message Protocol
         #define MAX_PACKET_SIZE 65525
         #define BIND2IP "165.194.17.76" //Put you'r IP in her
         #include <stdio.h>
         #include <winsock2.h>
         #include <mstcpip.h>
         #include <ws2tcpip.h>
          //unsigned long Options_and_Padding;
         void ProcessPacket(char* Buffer, int Size)
          struct sockaddr_in SockAddr;
          SockAddr.sin_addr.s_addr = iphdr->SrcIP;
          printf("Packet From: %s ", inet_ntoa(SockAddr.sin_addr));
          SockAddr.sin_addr.s_addr = iphdr->DstIP;
          printf("To: %s ", inet_ntoa(SockAddr.sin_addr));
          printf("Protocol: ICMP ");
          printf("Protocol: IGMP ");
  • MoniWikiPlugins . . . . 3 matches
         Ko:MoniWikiPlugins
         모니위키는 MoinMoin과 호환하는 Macro를 가지고 있으며, 그 매크로에 상응하는 action을 각각 가지고 있는 경우 혹은 액션만 있고 매크로는 없는 경우가 있습니다.
          * [Include]
          * SystemInfo
          * WordIndex
          * print
          * theme
          * login
          * minilogin
          * quicklinks
          * sendping
          * Admin
          * TwinPages
  • NUnit/C++예제 . . . . 3 matches
         === 예제 소스 실행법 (Using C++) ===
          * 속성 페이지 가서 C/C++로 간다음, #using 참조확인에다가 NUnit이 깔린 폴더의 bin 폴더를 넣어준다.
          * NUnit이 깔린 폴더의 bin안에 보면 NUnit-gui.exe을 실행한다. 컴파일해서 나온 dll을 로딩해주고 run하면 테스트들을 실행해준다.
         #using <nunit.framework.dll>
         using namespace System;
         using namespace NUnit::Framework;
          int a, b;
          [SetUp] void Init();
         #include "stdafx.h"
         #include "NUnit6.h"
          void Calculator::Init() {
         #using <nunit.framework.dll>
         using namespace System;
         using namespace NUnit::Framework;
          int a, b;
          void Calculator::Init() {
         #include "stdafx.h"
         #include "NUnit6.h"
          3. 테스트 프로젝트의 속성으로 들어가서 #using 참조에 nunit\bin폴더를 넣어준다.
         메인프로젝트에서 만든 새 클래스를 테스트 프로젝트에서 테스트하고 싶다. 어떻게 해야할까? 순진한 인수군은 #include <domain.h> 이렇게 하고, 테스트 클래스에 .h랑 .cpp 참조 넣어주면 될줄 알았다. 이것땜에 어제밤부터 삽질했다. 이렇게만 하면 안되고... 새로 만든 클래스를 일단 보자.
  • PNA2011/서지혜 . . . . 3 matches
          * 9 NINES를 가진 전설적인 언어?
          * Motivation, Organization, Information/Innovation/Insight, Jiggle
          * Doing is faster than arguing
          * Think forward
  • PatternOrientedSoftwareArchitecture . . . . 3 matches
         wiki:NoSmok:OpeningStatement 부분
         || Distributed Systems || Broken Patterns || use in distributed application ||
         || Interactive Systems || Model-View-Controlled, Presentation-Abstraction-Control Pattern || - ||
          * 생각 해야할 문제(Problem - balance in following forces)
          * interface는 안정적이어야 한다.
          * 시스템의 각 부분은 교환 가능해야 한다. (Design for change in general is a major facilitator of graceful system evolution - 일반적으로 변화에 대비한 디자인을 하는것은 우아한 시스템 개발의 주요한 촉진자이다.)
          * It may be necessary to build other systems at a later date with the same low-level issues as the system you are currently designing ( 정확한 의미는 모르겠음, 누가 해석좀....)
          * Scenario2 - bottom-up communication, 레이어 1에서 시작하는 연쇄적인 동작들이다. top-down communicatin과 헷갈릴 수도 있는데 top-down communication은 요청(requests)에 의해서 동작하지만, bottom-up communication은 통지(notifications)에 의해서 동작한다. 예를 들어서 우리가 키보드 자판을 치면, 레벨1 키보드에서 최상위 레벨 N에 입력을 받았다고 통지를 한다. bottom-up communicatin에서는 top-down communication과는 반대로 여러개의 bottom-up 통지들(notifications)은 하나의 통지로 압축되어서 상위 레이어로 전달되거나 그대로 전달된다.
          * services 들을 명확히 하여라. 가장 중요한 구현 원칙은 레이어들이 엄격하게 각자 분리 되어야 한다는 점이다. 레이어들 사이에 공유되는 모듈은 엄격한 layering 약하게 한다. 그리고 낮은 레이어보다 높은 레이어에 더 많은 service를 넣는것이 더 낮다.
          * Refine layering. 위의 1~4번 과정을 반복 하여라.
         레이어들 |=> 이것들을 생각 하고나서 define components and service
          * Relaxed Layered System : 이시스템을 통해서 얻은 유연성과 성능의 향상은 유지보수 능력의 저하를 가져온다. application 소프트웨어 보다 infrastructure(영구적인) 시스템에서 자주 본다. UNIX, X Window System가 그예이다.
          * Layering Through Inheritance : 상속 관계로 레이어 패턴을 구현. 현재 뜨는 OOP로 할 수 있다.
          * Virtual Muchines
          * Information System(IS)
          * Windows NT
          * cascades of changing behavior : 레이어를 바꾸는것뿐만 아니라 그 인터페이스를 바꿀경우에 다른 부분까지 수정해줘야 한다는 말 같다.
          * 이 패턴은 : data source - filter - pipes - filter - data sink, 의 순서로 되어 있고, 각 필터에서는 데이터를 처리하는 함수가 있을 수 있다. 레이어 패턴과 비슷한 점도 보이지만, 이 패턴의 특징은 쉬운 재조합과 재사용성이다. 에러를 처리하는 관점과 시스템의 신뢰성을 따지면 레이어가 더 낮다.
          * input은 intermediate 와 마지막 result와 마찬가지로 다양한 표현이 있다. 알고리즘들은 다양한 paradigm들에 의해서 수행된다.
          * 모든 부분적인 문제들은 같은 knowledge 표현을 사용하여 해결된다. 그러나 input으로 다양한 표현이 올 수 있다.
  • PerformanceTest . . . . 3 matches
         Windows 에서의 수행시간측정 방법.
          BOOL QueryPerformanceFrequency(LARGE_INTEGER* param)
          BOOL QueryPerformanceCounter(LARGE_INTEGER* param)
         상기 두 Windows API함수를 사용해서 수행 시간을 측정 할 수 있습니다.
         다음은 Binary Search 의 퍼포먼스 측정관련 예제. CTimeEstimate 클래스를 만들어 씁니다.
          #include <windows.h>
          #include <time.h>
          #include <stdio.h>
          __int64 m_nStart, m_nEnd, m_nFreq;
          QueryPerformanceFrequency((LARGE_INTEGER*)&m_nFreq);
          QueryPerformanceCounter((LARGE_INTEGER*)&m_nStart);
          QueryPerformanceCounter((LARGE_INTEGER*)&m_nEnd);
          void Init (int S[]);
          int getRandNum (int nBoundary);
          int BinarySearch (int nBoundary, int S[], int nKey);
          int main (void)
          int S[30001];
          int i, nRandNum, nLocation;
          int nBoundary = 2000;
          Init (S);
  • PersonalHistory . . . . 3 matches
          * [http://izyou.net/wireless Moblie computing class term paper]
          * [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
          * [ZeroPageMagazine] - 미완성
          * 참고 페이지 - [GuiTesting]
          * [TheJavaMan] - 2004년 3월 2일 종료
          * [TheJavaMan/비행기게임] - 2004년 3월 2일 종료
          * [TheJavaMan/숫자야구] - 2004년 1/26일 종료
  • PragmaticVersionControlWithCVS . . . . 3 matches
         The Pragmatic Programmers 시리즈. 첫인상은 개념보다는 실용서라는 느낌이 확연하게 들고, 아마존 서평도 꽤 좋은 편이다.
         || ch1 || [PragmaticVersionControlWithCVS/Introduction] ||
         || ch3 || [PragmaticVersionControlWithCVS/Getting Started] ||
         || ch5 || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
         || ch7 || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
         || ch8 || [PragmaticVersionControlWithCVS/CreatingAProject] ||
         || ch9 || [PragmaticVersionControlWithCVS/UsingModules] ||
  • ProgrammingPearls . . . . 3 matches
         = Introduction =
         || ["ProgrammingPearls/Column1"] || Cracking The Oyster ||
         || ["ProgrammingPearls/Column2"] || Aha! Algorithm ||
         || ["ProgrammingPearls/Column3"] || Data Structures Programs ||
         || ["ProgrammingPearls/Column4"] || Writing Correct Programs ||
         || ["ProgrammingPearls/Column5"] || A Small Matter Of Programming ||
         || ["ProgrammingPearls/Column6"] || Perspective On Performance ||
         || ["ProgrammingPearls/Column7"] || The Back of the Envelope ||
         || ["ProgrammingPearls/Column8"] || Algorithm Design Techniques ||
         || ["ProgrammingPearls/Column9"] || Code Tuning ||
         || ["ProgrammingPearls/Column10"] || Squeezing Space ||
         || ["ProgrammingPearls/Column11"] || Sorting ||
         || ["ProgrammingPearls/Column12"] || A Sample Problem ||
         || ["ProgrammingPearls/Column13"] || Searching ||
         || ["ProgrammingPearls/Column14"] || Heaps ||
         || ["ProgrammingPearls/Column15"] || Strings of Pearls ||
  • ProgrammingPearls/Column3 . . . . 3 matches
          * 주로 Refactoring과 Table Driven Programming을 설명하고 있다.
         === Form-Letter Programming ===
          * 출력 양식 : 변하는 것은 Kang-In-Su, Computer, Seoul, Su-saek이다.
         Hello, Kang-In-Su.
         #include <iostream>
         #include <fstream>
         #include <string>
         using namespace std;
         int main()
          string name, good, dong, city;
          ifstream fin("data.dat");
          getline(fin, name);
          getline(fin, good);
          getline(fin, city);
          getline(fin, dong);
         // Programming Pearls에서 제시하는 방법은
         #include <iostream>
         #include <string>
         #include <fstream>
         using namespace std;
  • ProgrammingPearls/Column4 . . . . 3 matches
         == Writing Correct Programms ==
          * For writing correct programms.
          * Problem Definition.
         === The shallange of binary search ===
          * 100명의 프로페셔널 프로그래머들에게 Binary search를 짜보라고 시켰다. 결과는? 90퍼센트의 사람은 버그 있는 Binary search를 짰다고 한다.
         === Writing the Program ===
          * 그냥 Binary search 만들어 가는 과정을 보여주고 있다.
         === Understanding the Program ===
          * Initialization
          * Termintion
         === Principles ===
          * Verification을 위한 general한 principles을 제공하고 있다.
          * Functions : precondition - 함수 시작 전에 보장되어야 할 조건 -과 postcondition - 함수 끝날때에 보장되어야 할 조건 -을 명시해준다.(...) 이러한 방법을 "Programming by contract"라 한다.
         === The Roles of Program Verification ===
         ["ProgrammingPearls"]
  • ProjectPrometheus/MappingObjectToRDB . . . . 3 matches
         참조 문서 : http://martinfowler.com/isa/OR-mapping.html
          For Login
          For Recommendation System (Read Book, point )
          For Book Information
          For cauBook Information (중대 도서관시 유일한 키)
          For Recommendation System ( Related Book Point )
         ProjectPrometheus 는 RDB-Object 연동을 할때 일종의 DataMapper 를 구현, 적용했었다. 지금 생각해보면 오히려 일을 복잡하게 한게 아닌가 하는 생각을 하게 된다. Object Persistence 에 대해서 더 간단한 방법을 추구하려고 노력했다면 어떻게 접근했을까. --["1002"]
         PEAA 의 RDB Mapping 과 관련된 패턴을 바로 적용하는 것에 대한 답변
         한편으로 [http://www.xpuniverse.com/2001/pdfs/EP203.pdf Up-Front Design Versus Evolutionary Design In Denali's Persistence Layer] 의 글을 보면. DB 관련 퍼시스턴트 부분에 대해서도 조금씩 조금씩 발전시킬 수 있을 것 같다. 발전하는 모양새의 중간단계가 PEAA 에서의 Table/Row Gateway 와도 같아 보인다.
          1. 13개월 프로젝트인데 2만라인짜리라는점 - 뭐.. 꼭 소스 라인수로 세는건 무리가 있긴 하지만. Servlet 프로젝트 2만라인. 내가 전에 팀 프로젝트로 MFC 엑셀 만들때가 1만 7천라인이였는데. -_-a 물론, Refactoring 이 잘 되어있고, XP 가 잘 적용된 프로젝트이라면 적은라인수로 많은 일을 하겠지만.
         ["ProjectPrometheus"]
  • PythonForStatement . . . . 3 matches
          for i in a:
          print i
          for d in a:
          print d
         비슷한 것을 찾자면 C++의 배열보다는 C++의 string 클래스, Java의 String 클래스와 비슷하다는 점을 알 수 있어. -- [Leonardong]
         for i in 'helloworld':print i,
         for i in [ 'h','e','l','l','o','w','o','r','l','d']:print i,
         for statement definition
         for_stmt ::= "for" target_list "in" expression_list ":" suite
         for 타겟객체리스트(target) in 시퀀스형(expression_list==sequence):
         in 다음에 와야할 문은 시퀀스형 입니다.
         These represent finite ordered sets indexed by non-negative numbers. The built-in function len() returns the number of items of a sequence. When the length of a sequence is n, the index set contains the numbers 0, 1, ..., n-1. Item i of sequence a is selected by a[i].
         {{|There are six sequence types: strings, Unicode strings, lists, tuples, buffers, and xrange objects|}}
         내장형인 strings 도 시퀀스 형이며, {{{a[i]}}} 형태로 접근할수 있습니다. 따라서,
         for i in 'helloworld': print i,
         for i in [ 'h','e','l','l','o','w','o','r','l','d']:print i,
         Java 1.5 에 advanced for statement 라는 이름으로 비슷한 것이 추가되었고, C#에는 언어가 탄생 될때 부터 있었습니다. Java 1.5에서는 수년간 논의 끝에 도입을 했는데, 언어에 녹이기 위해서는 Autoboxing/Unboxing과 편리성을 위해 Template과 같은 여러 필수불가결하고 복잡다난(?)한 개념이 함께 추가되었습니다.
         --NeoCoin
  • RandomWalk/ExtremeSlayer . . . . 3 matches
         #define _BOARD_H_
          int _nRow;
          int _nCol;
          int** _nBlockFrequency;
          int _nCurRow;
          int _nCurCol;
          int _nTotalMovement;
          RandomWalkBoard(int& nRow, int& nCol, int& nCurRow, int& nCurCol);
          void SetArrayAsZero(int& nCurRow);
          int GetRandomDirection() const;
          bool CheckCorrectCoordinate(int& nDelRow, int& nDelCol) const;
         #include <iostream>
         #include <cmath>
         #include <ctime>
         using namespace std;
         #include "RandomWalkBoard.h"
         RandomWalkBoard::RandomWalkBoard(int& nRow, int& nCol, int& nCurRow, int& nCurCol)
          _nBlockFrequency = new int*[_nRow];
          for(int i = 0 ; i < _nRow ; i ++)
          _nBlockFrequency[i] = new int[_nCol];
  • Refactoring/SimplifyingConditionalExpressions . . . . 3 matches
         = Chapter 9 Simplifying Conditional Expressions =
          * You have a complicated conditional (if-then-else) statement. [[BR]] ''Extract methods from the condition, then part, and else parts.''
          charge = quantity * _winterRate + _winterServeceCharge;
          charge = winterCharge(quantity);
          * You have a sequence of conditional tests with the same result. [[BR]]''Combine them into a single conditional expression and extract it.''
          // compute the disability amount
          // compute the disability amount;
          * The same fragment of code is in all branches of a conditional expression. [[BR]]''Move it outside of the expression.''
          * A method has conditional behavior that does not make clear the normal path of execution [[BR]] ''Use guard clauses for all the special cases.''
          * You have a conditional that chooses different behavior depending on the type of and object [[BR]] ''Move each leg of the conditional to an overriding method in a subclass. Make the orginal method abstract.''
         == Introduce Null Object ==
          * You have repeated checks for a null value[[BR]] ''Replace the null value with a null object.''
          if (customer == null) plan = BillingPlan.basic();
         == Introduce Assertion ==
          * A section of code assumes something about the state of the program. [[BR]]''Make the assumption explicit with an assertion.''
         ["Refactoring"]
  • STLErrorDecryptor . . . . 3 matches
         = Before Reading =
         본 문서는 [http://www.kwak101.pe.kr/kwak101/works/InternData/STLDecryptor_QuickGuide.html QuickInstallation For STLErrorDecryptor] 의 '''내용을 백업하기 위한 목적'''으로 만든 페이지입니다. 따라서 원 홈페이지의 자료가 사라지지 않은 이상 가능하면 원 홈페이지에서 글을 읽으셨으면 합니다.
         Upload:WorkingMethod.gif
          * STL 에러 해독기 패키지 (Win32용) : STLfilt.zip이란 이름을 가지고 있습니다 (http://ww.bdsoft.com/tools/stlfilt.html)
          * 펄 스크립트 인터프리터(Win32용) : 여기서는 ActivePerl을 사용합니다. (http://ww.activestate.coml)
          * Proxy-CL.INI : 프록시 CL이 작동하는 환경을 제공하는 INI 파일.
         가) Visual C++가 설치된 디렉토리로 이동하고, 여기서 \bin 디렉토리까지 찾아 들어갑니다. (제 경우에는 D:\Program Files2\Microsoft Visual Studio .NET\Vc7\bin입니다.) 제대로 갔으면, 원래의 CL을 백업용으로 모셔다 놓을 폴더를 하나 만듭니다. (제 경우에는 '''native_cl'''이란 이름으로 만들었습니다.) 그리고 나서 CL.EXE를 그 폴더에 복사해 둡니다.
         Upload:OriginalCLFolderMaking.gif
         나) \bin 디렉토리에 있는 CL.EXE를 CL2.EXE로 이름을 바꾸어 줍니다.
         다) 이젠 프록시 CL의 동작에 필요한 환경 옵션을 제공하는 Proxy-CL.INI 파일을 여러분의 개발환경에 맞게 고쳐야 합니다. 텍스트 편집기로 Proxy-CL.INI를 열면 아래의 [common], [proxy.cl], [stltask.exe] 부분이 모두 비어 있는데, 윗부분의 주석문을 참고하면서 환경 변수를 고쳐줍니다. 반드시 설정해야 하는 옵션은 다음과 같습니다.
         아래의 그림은 저의 Proxy-CL.INI 파일입니다.
         라) 이렇게 편집한 Proxy-CL.INI를 윈도우 디렉토리에 복사합니다. 윈도우 디렉토리란 윈도우 98/ME 등에선 \WINDOWS이겠고, 윈도우 NT/2000/XP 등에선 \WINNT 이겠지요. 즉 운영체제와 프로파일 파일들이 들어 있는 곳입니다. 프록시 CL은 기본적으로 이 윈도우 디렉토리에서 읽은 Proxy-CL.INI을 가지고 동작 옵션을 정합니다.
         마) 이제, STLfilt.zip의 압축을 푼 디렉토리에서 프록시 CL을 복사해서 VC의 \bin 디렉토리에 붙입니다.
         여기서 "Enable Filtering"을 선택하면 그때부터 STL 에러 필터링이 가능해집니다. 그리고, 앞으로 STL 에러 필터링을 활성화하거나 비활성화할 때에는 이 태스크바의 아이콘을 사용하면 됩니다(Enable filtering/Disable filtering을 선택하면 되겠죠). 필터링이 활성화 되어 있느냐 그렇지 않으냐의 여부는 작업 표시줄의 아이콘 색깔( Upload:STLTaskActIcon.gif 은 활성화되었다는 뜻)로 확인할 수 있습니다.
         #include<string>
         using namespace std;
         int main()
          string s(10); // 컴파일 에러를 일으키는 문장, 하나의 매개 변수를 받는 string 생성자는 할당자만을 받습니다.
         h:\MyProgrammingLab\JunkRoom\Weired_C++\Test.cpp(6) :
         error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &) with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]' : 매개 변수 1을(를) 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc & with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 원인: 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 소스 형식을 가져올 수 있는 생성자가 없거나 생성자 오버로드 확인이 모호합니다.
  • ScheduledWalk/재니&영동 . . . . 3 matches
         #include <iostream>
         using namespace std;
         class Inputer{
          int col, row; // 판 크기
          int startx, starty; // 바퀴 시작 좌표
          Inputer(){
          cin>> col >> row;
          cin >> startx >> starty;
          cin >> journey;
          int* BoardArray;
          int maxCol, maxRow;
          Board (int col, int row)
          BoardArray = new int[row * col + row];
          for (int i = 0 ; i < col ; i++)
          for (int j = 0 ; j < row ; j++)
          void start(int x, int y, char* journey)
          int move[8][2]={{0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}};
          for (int check, direction, i=0 ; check != maxRow * maxCol && CurrentMove != '' ; i++)
          for (int j = 0 ; j < maxRow * maxCol ; j++) // 빈 셀이 있는지 확인
          void print()
  • SeminarHowToProgramIt . . . . 3 matches
         see also SeminarHowToProgramItAfterwords
          * ["CrcCard"] (Index Card -- The finalist of Jolt Award for "design tools" along with Rational Rose Enterprise Edition)
          * Paper Shell Programming -- Becoming a Pseudo-Turing Machine Yourself
          * Stepwise Refinement -- 진부한 미래, 신선한 과거 (see also NoSmok:ProgrammingOnPurpose )
          * White Board -- Communicate with the Board
          * PairProgramming -- 1+1 > 2
          * ["Refactoring"] -- 후각 개발법
          * Coding Style -- esp. How to Name it (프로그래머를 위한 정명학. "子曰 必也正名乎...名不正則言不順 言不順則事不成" <논어> 자로편)
          * Managing To Do List -- How to Become More Productive Only With a To-do List While Programming
          * Programmer's Journal -- Keeping a Diary (see also NoSmok:KeepaJournalToLiveBetter )
          * Lifelong Learning as a Programmer -- Teach Yourself Programming in Ten Years (http://www.norvig.com/21-days.html )
          * What to Read -- Programmer's Reading List
         세미나는 실습/토론 중심의 핸드온 세미나가 될 것이며, 따라서 인원제한이 있어야 할 것임. 약 20명 내외가 적당할 듯. ("Tell me and I forget, teach me, and I may remember, involve me and I learn." -- Benjamin Franklin)
         === 프로그램 (pun intended) ===
          * [http://zeropage.org/~sun/eclipse-SDK-20020321-win32.zip Eclipse]
          ["neocoin"]:위키에 특정 로그인이 존재 하지 않고,열어논 이유가 글을 쓰고 의견을 주십사 해서 입니다. 저번달 누군가 함부로 지우는 사태가 발생해서 일단 지우는 권한에 대하여 HGC(Human Garbage Collector- 아니라 KHGC인가.--a)체제로 바꾸었지만요. --상민
         ||Crc Card & Index Card & White Board||1 ||
         ||Paper Shell Programming ||1 ||
         ||Stepwise Refinement ||1 ||
         ||PairProgramming ||6 ||
  • SuperMarket/세연 . . . . 3 matches
         #include<iostream.h>
          int money;
          int max_num;
          int cost;
          int quanty;
          void Inventory();
          int temp;
          cin >> temp;
          int choice;
          int quanty;
          for(int i = 0 ; i < max_num ; i++)
          cin >> choice;
          cin >> quanty;
         void supermarket::Inventory()
          for(int i = 0 ; i < max_num ; i++)
          int choice;
          int quanty;
          cin >> choice;
          cin >> quanty;
         int main()
  • TCP/IP 네트워크 관리 / TCP/IP의 개요 . . . . 3 matches
          *현재 인터넷(intetnet)은 네트워크의 모든 종류를 가리키는 포괄적 용어
          *''internet'' : 단일한 논리적 네트워크를 만들기 위해 동일한 프로토콜로 서로 연결된, 분리된 물리적 네트워크의 모든 모임
          *''Internet'' : 원래 ARPANET에서 성장. 다양한 네트워크를 하나의 논리적 네트워크로 묶기 위해서 인터넷 프로토콜(IP)을 사용하는 서로 연결된 네트워크의 전세계적 모임.
          *ISO(International Standards Organization, 국제 표준기구)에 의해 개발된 구조적 모델 '''OSI'''(Open Systems Interconnect Reference Model)은 데이터 통신 프로토콜 구조와 기능 설명을 위해 자주 사용.
          *Data link layer : 물리적 연결선을 이용해 안정적인 데이터 전송을 제공
  • TCP/IP_IllustratedVol1 . . . . 3 matches
         = TCP/IP Illustrated, Volume 1 : The Protocols =
         W. Richard Stevens 라고 책 겉 표지에, 부제인 'The Protocols' 만큼이나 크게 적혀있다.
          * "'''''The word illustrated distinguishes this bool from its may rivals.'''''" 이 책의 뒷커버에 적혀있는 말이다. 이말이 이 책을 가장 멋지게 설명해준다고 생각한다.
          * 00 이정직 ["fnwinter"]
          * Comer 박사의 "INTERNETWORKING with TCP/IP Vol.1 : PRINCIPLES, PROTOCOLS, AND ARCHITECTURES" 를 빌렸다. -zennith.
          * 유보라...우선 중간고사를 치른 후 논의 해 보자..... 그 방법 밖이..ㅠㅠ -fnwinter
          * 중간 고시도 끝났으니 다시 논의 해 봐야 하지 않을까나..김군~ -- fnwinter
          * Comer 의 책은 일단 접어두련다. illustrated 를 다 본다음에나 보는게 좋을 듯. 역시 text 라는 이미지는 illustrated 쪽이 좀 더 강하니까. 그리고, 재동아 너는 그럼 공부는 안하고 듣기라도 하려냐? 물론.. 정직 네게 더 진행하자는 의지가 있을 때의 이야기겠지만. 아무튼.. 난 지금 udp 지나 multicasting broadcasting 쪽 보고있다. -zennith
  • TheJavaMan/설치 . . . . 3 matches
         http://download.eclipse.org/downloads/drops/S-3.0M6-200312182000/eclipse-SDK-3.0M6-win32.zip
         public static void main(String[] args)를 체크해 놓으면 따로 입력안해두 되니깐 좋아
          public static void main(String[] args) {
          System.out.println("Hello!!! The Java Man");
         앞의 과정을 잘 따라했다면 ''System.out.println("Hello!!! The Java Man");''
         Hello!!! The Java Man
  • TheJavaMan/지뢰찾기 . . . . 3 matches
         [http://zeropage.org/~darkduck/mine.html 실행]
         import javax.swing.*;
         public class Mine extends JApplet {
          private int row, col, numMines;
          private Vector mines = new Vector();
          //private Point firstClick = new Point();
          private int map[][];
          private int numClick; // 왼쪽 버튼 누른 수
          // numClick + numMines == row * col => 겜종료
          private int numFlags; // 깃발 꼿은 수
          // numMines - numFlags = 남은 폭탄 수
          numLeftMines = new JTextField(3),
          public void init() {
          Container cp = getContentPane();
          mines.clear();
          setMapSize(row, col, numMines);
          setMines();
          numLeftMines.setText(String.valueOf(numMines));
          top.add(numLeftMines, BorderLayout.WEST);
          setMines();
  • ToastOS . . . . 3 matches
         = Toast Operating System =
         The war was brief, but harsh. Rising from the south the mighty RISC OS users banded together in a show of defiance against the dominance of Toast OS. They came upon the Toast OS users who had grown fat and content in their squalid surroundings of Toast OS Town. But it was not to last long. Battling with SWIs and the mighty XScale sword, the Toast OS masses were soon quietened and on the 3rd November 2002, RISC OS was victorious. Scroll to the bottom for further information.
         Bochs 1.3 - Win32 [[BR]]
         작업 환경이 win 2000 pro로 들어가면서 바뀌었습니다.
         음..우선 전에 플로피 1번 섹터에서 부트섹트를 읽어 들여 부트 로더를 만든다고 까지 얘기한 것 같다.그럼 커널로더는 무엇일까? 부트 로더가 할 수 없는 기이한 일들을 커널 로더가 한다. 우선 보호모드로들어가는 것과 커널을 실행가능한 상태로 재배치 시키는 일등을 한다. 왜 그런 일을 할까? 부트로더가512kb밖이 되지 않아 그런 일들을 할 수 없기 때문이다. 위에 사진에서 보면 퍼런 글씨로 kernel loader라고나오는데 전에 CAU Operating System 어쩌구...가 먼저 나온다..다만 VMWARE를 쓰기때문에 그런 글씨가 안나온다. 여하튼 커널 로더가 가지는 의미는 우선 부트로더를 만들기 위해 어쩔수 없이 썼던 짜증나는 어셈을 이제 안써도 된다...ㅋㅋ 사실 어셈은 계속 써야 된다... 다만 이제 어쎔을 주로 쓰지 않고 C에서 인라인 어쎔을 쓸것이다. 이제 Boland C 3.1 버전의 컴파일러로 커널로더와 커널을 제작하게 될 것이다. 그럼 위와 같은 것을 그냥 해주면 되는거 아니냐? 라고 반문하는 사람이 있을 것이다.. 그렇다. 그냥 해주면 된다. 우선 컴파일할때 -S라는 옵션을 두어서 어셈블리 소스를 만들고 나서 그리고 그렇게 만들어진소스의 extern들을 링크 시키고 그런 다음 EXE파일을 실행가능한 재배치상태로 만들고 나서 부트로더와 같이뒤집어 씌우면 된다.
         아차 나는 boland C 3.1버전을 쓰지만 gcc를 쓰는 사람은 MAKE PLAIN BINARY FILE이라는 PDF가 있을 것이다.찾아서 읽어보면 아주 평평한 바이너리파일을 만드는 법을 배울것이다. 참고로 C에서 평평한 바이너리 파일을 만들기 위해 몇가지 주의사항이 있다. 그 PDF파일에 적혀 있으니 읽어보도록...
         ["InsideCPU"] 인사이드 CPU [[BR]]
         == And now... introducing the better alternative... RISC OS ==
         RISC OS OWNS YOU ALL! http://www.hashriscos.org LET THE RISC OS VERSUS TOAST OS WAR COMMENCE!
         Get the butter.. this could get messy
  • TugOfWar . . . . 3 matches
         [http://online-judge.uva.es/p/v100/10032.html 원문보기]
         === Input ===
         === Sample Input ===
         worst case(입력자료 크기로만) 입력은 TugOfWarInput 참조
         || JuNe || Python || 1시간 || Seminar:TugOfWar/JuNe ||
  • VendingMachine_참관자 . . . . 3 matches
         # include <string.h>
         # include <stdio.h>
         # include <stdlib.h>
         # define HELLO 1
         # define PUT 2
         # define RETURN 3
         # define PUSH 4
         # define OFF 5
         # define TOKEN_NUM 5
         # define MENU_NUM 5
          char InputStr[100];
          int index;
          int ReceiveCommand();
         class VendingMachine{
          int Money;
          int MinPrice;
          int Menu_num;
          int Price[10];
          int M[10];
          void SetMenuM(int i);
  • VisualBasicClass/2006/Exam1 . . . . 3 matches
         ④ MultiLine은 컨트롤이 문의 여러 줄을 받아 들일 수 있는지 여부를 결정하게 된다. True는 한줄을, False는 여러줄을 사용할 수 있다.
         Print I;
          Dim m As Integer
          Dim j As Integer
          Dim temp As String
          Picture1.Print temp
         Print I
         Print "Loop" Print "Loop"
         Print "Loop" Print "Loop"
         Dim a(1 to 20, 1 to 30) As Single
         Print a(5,3)
         2) String$(7,"*-")
         3) InStr("태수금지화목토천혜명", 4)
         a = inputbox(“입력문자”)
         Print x, "->", Len(x) ; "byte"
         Print y, "->", Len(y) ; "byte"
         Print z, "->", Len(z) ; "byte"
  • WorldCup/송지원 . . . . 3 matches
          * 처음에 class명을 Main으로 해야 하는 지 몰라서 Compile Error를 아름답게 띄움...-_-;; // 아래 소스도 복붙할 때 바꿔 줘야 함
          public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int teams = sc.nextInt(); // 0 <= T <= 200
          int matches = sc.nextInt(); // 0 <= N <= 10000
          int sum = 0;
          for(int i = 0; i < teams; i++) {
          sc.nextLine();
          sum += sc.nextInt();
          System.out.println((matches * 3 - sum));
  • [Lovely]boy^_^/EnglishGrammer/QuestionsAndAuxiliaryVerbs . . . . 3 matches
          A. In Questions, we usually put the first auxiliary verb(AV) before the subject(S)
          B. In simple present questions, we use do/does(do/does)
          In simple past questions, we use did
          But do not use do/does/did if who/what/which is the subject of the sentence.
  • [Lovely]boy^_^/USACO/BrokenNecklace . . . . 3 matches
         #include <iostream>
         #include <fstream>
         #include <string>
         using namespace std;
         ifstream fin("beads.in");
         int len = 0;
         string BeadsList;
         void InputData();
         int Process();
         const string CutAndPasteBack(const string& str, int pos);
         int main()
          InputData();
          fin.close();
         void InputData()
          fin >> len;
          fin >> BeadsList;
         int Process()
          int lnum = 0;
          int rnum = 0;
          int max = 0;
  • [Lovely]boy^_^/USACO/GreedyGiftGivers . . . . 3 matches
          * 혹시 map에 삽입할때 정렬 안되게 하는 법 없나요?;; 아무리 해도 방법이 안 떠올라서 따로 string 벡터를 만들어서 저장했는데;; 너무 더러워져서;;
         #include <iostream>
         #include <fstream>
         #include <string>
         #include <vector>
         #include <map>
         using namespace std;
         map<string,int> List;
         vector<string> ManList;
         int max_num = 0;
         ifstream fin("gift1.in");
         void InputData();
         int main()
          InputData();
          fin.close();
         void InputData()
          fin >> max_num;
          string name;
          for(int k = 0 ; k < max_num ; ++k)
          fin >> name;
  • eXtensibleMarkupLanguage . . . . 3 matches
         The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words XML is a way of describing data and an XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Languages based on XML (for example, Geography Markup Language (GML), RDF/XML, RSS, Atom, MathML, XHTML, SVG, and MusicXML) are defined in a formal way, allowing programs to modify and validate documents in these languages without prior knowledge of their form.
          * DTD로 검색하다 여기로 왔네요ㅋㅋㅋ 예전에 쓰신 것 같아서 지금은 아시는 내용이겠지만 나중에 다른 분들이 이 페이지를 보실 수 있으니 시간을 건너뛰어 댓글 답니다~ DTD는 Document Type Definition의 약자로 XML 문서 작성을 위한 규칙을 기술하는 형식입니다. valid XML Document의 경우 well-formed XML Document이면서 XML에서 사용되는 원소 이름이 해당 문서에 대한 XML DTD나 XML Schema에 명세된 구조와 합치되어야 한다고 하네요. 이 내용에 대한 수업을 들으며 씁니다ㅋㅋㅋㅋㅋㅋㅋ - [김수경]
  • erunc0/XP . . . . 3 matches
         == eXtreme Programming Installed ==
         '경험들' 로 친다면 오히려 Installed 가 맞는 선택일 것 같은데. --a 중간중간 실제 했었던 일들 이야기도 있었으니까 (RonJeffries 와 Chet 의 Pair 등) 뭐 암튼 적당하게 속도를 맞춰서 읽되, 한국어판 책의 서문 대로 '각 Practice를 극한까지 실험해보길'. 개인적으로 'Installed 가 추상적이다' 라는 말에는 반론 (Explained 라면 모를까..) 지금 XP 를 실천하는 중인 사람들을 보고 싶다면 뉴스그룹이 가장 생생하지 않을까 생각. (또는 http://xprogramming.com 의 글들) --["1002"][[BR]][[BR]]
  • html5/webSqlDatabase . . . . 3 matches
         if(!!window.openDatabase) {
         == Indexed Database ==
          * SeeAlso) [html5/indexedDatabase]
          * Indexed Database는 새로 등장한 또다른 로컬 저장소 스펙이다
          * 현재 Web SQL Database 는 사양 책정이 중지된 상태이며, IndexedDB 라는 새로운 스펙이
          alert('Something unexpected happened: ' + e.message );
          // re-render all the data
          'todo(ID INTEGER PRIMARY KEY ASC, todo TEXT, added_on DATETIME)', []);
          tx.executeSql('INSERT INTO todo(todo, added_on) VALUES (?,?)',
          todoItems.innerHTML = rowOutput;
         == hooking it all up ==
         === init ===
         function init() {
         <body onload="init();">
         === adding ===
          tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
          * http://html5doctor.com/introducing-web-sql-databases/
  • java/reflection . . . . 3 matches
          * ORM(Object-Relational-MApping)이 아닌 방식으로 DAO를 만들 때 사용되기도 한다.
         * just print "say Hello" string to console
          System.out.println("say Hello");
          public static void main(String[] args) {
         * call say HelloWorld class in external jar file package
          public static void main(String[] args) throws MalformedURLException, ClassNotFoundException, InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
          System.out.println(classLoader.getClass().getName());
          new URL("file:/Users/fharenheit/Projects/openflamingo/helloworld.jar")
          System.out.println(Thread.currentThread().getContextClassLoader().getClass().getName());
          System.out.println(Thread.currentThread().getContextClassLoader().getClass().getName());
          Object object = helloWorld.newInstance();
          for (int i = 0; i < declaredMethods.length; i++) {
          System.out.println(declaredMethod.getName());
          sayHello.invoke(object, null);
  • radiohead4us/PenpalInfo . . . . 3 matches
         Interests/Hobbies: writing letters, reading, music, ...............
         Study: Other
         Penpal should be: Either sex but preferably female
         Comments: Hi All! Writing letters is my greatest hobby and i am still looking for some pals around my age. If you´re interested in writing snail mail to me, please send me an e-mail. Thanks! I promise, I will answer all.
         Interests/Hobbies: traveling, music, snowbording
         Study: Other
         Penpal should be: Either sex
         Comments: I'm looking for friends all over the world(^0^)/
         Interests/Hobbies: music, world news
  • usa_selfish/곽병학 . . . . 3 matches
          int a;
          int b;
          pair(int a, int b) {
         public class Main{
          public static void main(String ar[]) {
          Scanner scan = new Scanner(System.in);
          int n = scan.nextInt();
          for(int i=0; i<n; i++)
          p[i] = new pair(scan.nextInt()-1, scan.nextInt()-1);
          int last = p[n-1].b;
          int[] ans = new int[last+1];
          for(int i=0; i<n; i++) {
          System.out.println(ans[last]);
          public int compare(pair o1, pair o2) {
  • 고전모으기 . . . . 3 matches
          * StructuredProgramming, TheElementsOfProgrammingStyle, SICP, SmalltalkByExample, SmalltalkBestPracticePatterns
          * TheArtOfComputerProgramming
          * AcmTuringAwardLecture (학교 도서관에 있습니다) 별 다섯개. --JuNe
          TheElementsOfStyle, WomenFireAndDangerousThings, MetaphorsWeLiveBy
  • 구조체 파일 입출력 . . . . 3 matches
         #include <iostream>
         using namespace std;
          int age;
         int main()
          cout << "Input name : " ;
          cin >> p.name;
          cout << endl << "Input age : ";
          cin >> p.age;
          cout << endl << "Input phone number : " ;
          cin >> p.phone;
  • 권영기/web crawler . . . . 3 matches
          print e.reason
         for line in urllib2.urlopen(req).readlines():
          fo.write(line)
          * http://coreapython.hosting.paran.com/howto/HOWTO%20Fetch%20Internet%20Resources%20Using%20urllib2.htm
         import string
         for line in fo1.readlines() :
          pos = string.find(line, '"http')
          for c in range(pos+1, len(line)) :
          if line[c] is '"' :
          fo2.write(line[c])
          * http://docs.python.org/tutorial/inputoutput.html
         for line in fo.readlines():
          urllib.urlretrieve(line,line.split('/')[-1])
          line = 'http://cfile23.uf.tistory.com/original/2001D2044C945F80495C6F'
          line.split('/')[-1] == '2001D2044C945F80495C6F'
          line.split('/')[-2] == 'original'
          say = "This is a line of text"
          part = line.split(' ')
          part == ['This', 'is', 'a', 'line', 'of', 'text']
         [GCC 4.6.1] on linux2
  • 몸짱프로젝트/CrossReference . . . . 3 matches
         import string
         ## def __init__(self, aRoot):
         ## def find(self, aRoot, aWord):
         ## elif string.lower(aRoot.getWord()) > aWord and aRoot.left != None:
         ## return self.find(aRoot.left, aWord)
         ## elif string.lower(aRoot.getWord()) < aWord and aRoot.right != None:
         ## return self.find(aRoot.right, aWord)
          elif string.lower(aRoot.getWord()) > aWord:
          elif string.lower(aRoot.getWord()) < aWord:
          def setNode(self, aRoot, aWord, aLine = '1'):
          node.increaseCount()
          node.addLines(aLine)
          '''Twas brilling and the slithy toves did gtre and gimble in the wabe'''
          for l in wordList:
          print 'Word\t\tCount\t\tLines'
          self.inorder(root)
          def inorder(self, aRoot):
         ## print 'start'
         ## print 'left'
          self.inorder(aRoot.left)
  • 미로찾기/영동 . . . . 3 matches
         #include<iostream>
         #include<fstream>
         using namespace std;
         #define DIRECTION 4
         #define UP 0
         #define RIGHT 1
         #define DOWN 2
         #define LEFT 3
         const int MOVE_X[DIRECTION]={0, 1, 0, -1};
         const int MOVE_Y[DIRECTION]={-1, 0, 1, 0};
         #define SIZE_X 6
         #define SIZE_Y 7
         #define EMPTY 0
         #define BLOCKED 1
         #define MARKED 1
         #define STACK_SIZE SIZE_X*SIZE_Y
          int x;
          int y;
          int dir;
          Element(int aX, int aY, int aDir)
  • 서지혜/Calendar . . . . 3 matches
          public static void main(String[] args) {
          System.out.println("Input year pleas : ex) 2013");
          System.out.print(">> ");
          Scanner scanner = new Scanner(System.in);
          int year = Integer.parseInt(scanner.nextLine());
          new Year(year).print();
          private int month;
          private int length;
          private int startDate; // 1:mon 2:tue 3:wed 4:thu 5:fri 6 :sat 0:sun
          public Month(int month, int length, int startDate) {
          public void print() {
          System.out.println("MONTH : " + month);
          System.out.println("sun\tmon\ttue\twed\tthu\tfri\tsat");
          String days = "";
          for (int i = 1; i <= startDate; i++) {
          for (int i = 1; i <= length; i++) {
          System.out.println(days + "\n");
          private int year;
          public Year(int year) {
          public void print() {
  • 알고리즘2주숙제 . . . . 3 matches
         === Generating Function ===
         세로가 3 가로가 n(2의 배수)인 상자가 있다. 여기에 크가가 2*1인 레고를 채울려고 한다. 가로가 n일때 빈칸 없이 가득채울수 있는 모양의 개수를 클로즈폼으로 구하시오.(Generating Function으로 구하시오)
         === Induction ===
         === Generating Function ===
         From Concrete Mathematics, Chapter 7. Generating Function
         1. (Warm up) An eccentric collector of 2 x n domino tilings pays $4 for each vertical domino and $1 for each horizontal domino. How many tiling are worth exactly $m by this criterion? For example, when m = 6 there are three solutions.
         3. (Basic)Solve the recurrence
         4. (Homework exercises) How many spanning trees are in an n-wheel( a graph with n "outer" verices in a cycle, each connected to an (n+1)st "hub" vertex), when n >= 3?
         From Discrete mathematics
         5. Let us use a generating function to find a formula for s<sub>n</sub>, where s<sub>0</sub> = s<sub>1</sub> = 1, and s<sub>n</sub> = -s<sub>n-1</sub> + 6s<sub>n-2</sub> for n ≥ 2.
         6~8 Give a generating fuction for the sequence {a<sub>n</sub>}.
         6. Let a<sub>r</sub> be the number of ways to select r balls from 3 red balls, 2 green balls, and 5 white balls.
         7. Let a<sub>r</sub> be the number of ways r cents worth of postage can be placed on a letter using only 5c, 12c, and 25c stamps. The positions of the stamps on the letter do not matter.
         8. Let a<sub>r</sub> be the number of ways to pay for an item costing r cents with pennies, nickels, and dimes.
         === Induction ===
  • 알고리즘8주숙제 . . . . 3 matches
         ==== 1. Friendly Coins ====
         Given the denominations of coins for a newly founded country, the Dairy Republic, and some monetary amount, find the smallest set of coins that sums to that amount. The Dairy Republic is guaranteed to have a 1 cent coin.
         Give a greedy method, which is heuristic, to solve the 0/1 knapsack problem and also give an example to show that it does not always yield an optimal solution.
         The kanpsack problem is defined as follows:
         Given positive integers P<sub>1</sub>, P<sub>2</sub>, ..., P<sub>n</sub>, W<sub>1</sub>, W<sub>2</sub>,..., W<sub>n</sub> and M.
         Find X<sub>1</sub>, X<sub>2</sub>, ..., X<sub>n</sub>, 0 ≤ X<sub>i</sub> such that
         Give a greedy method to find an optimal solution of the knapsack problem and prove its correctness.
         ==== 4. Job Scheduling ====
         Consider the problem of scheduling n jobs on one machine. Describe an algorithm to find a schedule such that its average completion time is minimum. Prove the correctness of your algorithm.
         ==== 5. Optimal Binary Tree ====
         Optimal Binary Tree는 Dynamic Programming 기법으로 풀리는 유명한 문제입니다. 그누스 형님 방법에 의하면 O(n<sup>2</sup>)으로 풀립니다. 그러나 우리는 이보다 점근적으로 더 빠른 휴리스틱 버전을 작성해야 합니다.
         다음과 같이 input 이 들어온다고 가정합시다. 여기서 맨 앞 하나의 정수는 노드의 수를 나타냅니다. 그 밑으로 노드에 대한 정보가 입력됩니다. 노드의 처음은 key 값이고, 그 다음 값은 확률(확률은 1이상의 정수로 임의로 입력) 입니다. 하나의 노드를 검색했을때 실패하는 경우는 없다고 가정합시다. 최적의 평균탐색시간을 가지는 이진탐색트리를 구현하고 다음을 출력하시오.
         Inorder 순회를 통해 각 키값을 모두 출력하고, 또한 각 키값의 탐색시간의 합계를 출력하시오.
         ===== input =====
         alph 3 beta 7 theta 10 |}}
         {{| alph beta theta
         || [Leonardong] || 2h || [http://wiki.zeropage.org/trac/leonardong/browser/AlgorithmTrainning/OptimalBST.py] ||
         || 김상섭 || 엄청 || [AproximateBinaryTree/김상섭] ||
  • 이영호/nProtect Reverse Engineering . . . . 3 matches
         특정한 게임을 Cracking 하려고 했더니 nProtect와 비슷한 녀석이 디버그 되는 것을 방해하고 있었다.
         게임 : 마비노기(Mabinogi)
         (누군가가 nProtect가 함수를 hooking을 하고, 게임 자체 소스에 포함 되는 것이 아니라 바이너리 형식으로 덧 붙여진다고 하였는데,
         마비노기가 아닌 다른 nProtect를 사용하는 게임을 확인한 결과 소스에 포함되어 Exception Handling을 한다는 것을 발견하였다.)
         이것을 인라인 패치하였지만, OpenProcess로 디버그 Process를 Hooking하는 함수는 gc_proch.dll에 있다는 것을 확인하였다.
         성공 하였다. 다행히 이 guardcat은 Packing, Enchypher로 인한 encoding이 되지 않아서 인라인 패치가 쉬웠다.
         몇몇개의 함수만을 수정하고 guardcat.exe만 실행하였으나 gc_proch.dll의 hooking 루틴때문에 막혀버렸다.
         중요한것은 update를 어떻게 막느냐이다. 아마도 gc_proch.dll이 없더라도 mabinogi.exe는 제대로 실행될 것이다.
         => mabinogi.exe -> client.exe -> gcupdater -> guardcat.exe -> gc_proch.dll
         1. mabinogi.exe(게임 자체의 업데이트 체크를 한다. 그리고 createprocess로 client.exe를 실행하고 종료한다.)
         3. gcupdater(실행시 항상 서버에 접속하여 파일 3개를 받아온다. guardcat.exe, INST.dat, gc_proch.dll을 순서대로 받아와 자체적으로 wsprintf를 이용하여 복사한다.-아마 디버거에 API를 걸리기 싫었는지 모른다. createprocess로 guardcat.exe를 실행시킨다.)
         5. gc_proch.dll(이 파일은 debugger를 잡는 역할을 한다. 분석이 더 필요하다.) -> 이 파일은 dll injection 또한 막아낸다.
         client.exe가 실행될 때, 데이터 무결성과 디버거를 잡아내는 루틴을 제거한다면, updater의 사이트를 내 사이트로 변경후 인라인 패치를 통한 내 protector를 올려 mabinogi를 무력화 시킬 수 있다.
         mabinogi.exe -> client.exe로 넘어가는 부분
         |CommandLine = ""C:\Program Files\Mabinogi\client.exe" code:1622 ver:237 logip:211.218.233.200 logport:11000 chatip:211.218.233.192 chatport:8000 setting:"file://data/features.xml=Regular, Korea""
         |InheritHandles = FALSE
         |CurrentDir = "C:\Program Files\Mabinogi"
         |pStartupInfo = 0012E4F0
         |pProcessInfo = 0012E4E0
         client.exe code:1622 ver:237 logip:211.218.233.200 logport:11000 chatip:211.218.233.192 chatport:8000 setting:"file://data/features.xml=Regular, Korea" 로 실행시키면 된다.
  • 정모/2011.7.25 . . . . 3 matches
          * [Spring/탐험스터디]
          * 다시 구현해보는 WinMerge 계속 진행중입니다.
          * 지난주에 못 풀었던 PIGS와 TheLazyProgrammer에 재도전
          * The Lazy Programmer는 진경이가 풀어내었음!!
          * [EnglishSpeaking/2011년스터디]
          * The Simpsons 1시즌 1화 대사 따라하기 (Marge, Homer의 대화 40초)
  • 코바용어정리 . . . . 3 matches
         == 동적 호출 인터페이스(DII : Dynamic Invocation Interface) ==
         == 동적 스켈레톤 인터페이스(DSI : Dynamic Skeleton Interface) ==
         ORB 인터페이스는 애플리케이션에 중요한 지역 서비스에 대한 API들로 구성되어 있지 않다. 이것은 곧바로 ORB로 가는 인터페이스이고 모든 ORB들에 대해 동일하다.ORB 인터페이스는 객체 어댑터 또는 객체 인터페이스에 의존하지 않는다. 대부분의 ORB의 기능이 객체 어댑터, 스텁, 스켈레톤 또는 동적 호출 등을 통해서 제공되므로 몇몇 오퍼레이션만이 모든 객체들에 대해 공통이다. 공통 오퍼레이션에는 get_interface와 get_implementation 같은 함수가 포함되어 있는데, 이것들은 임의의 객체 레퍼런스에 작용하며 각각 인터페이스 저장소 객체와 구현 저장소 객체를 얻는 데 사용된다.
  • 프로젝트 . . . . 3 matches
          * [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
          * [ZeroPageMagazine] - 미완성
          * 참고 페이지 - [GuiTesting]
          * [TheJavaMan] - 2004년 3월 2일 종료
          * [TheJavaMan/비행기게임] - 2004년 3월 2일 종료
          * [TheJavaMan/숫자야구] - 2004년 1/26일 종료
  • 02_Python . . . . 2 matches
         = 02 Python Seminar =
          * 대부분의 정보는 Learning Python 에서 발최 .. 그책이 가장 쉬울꺼 같습니다.
         = Date of Seminar =
         = Main Contents =
          * 가장 정확하게 말하자면 객체 지향 스크립 언어이다. (see also Ousterhout's IEEE Computer article ''Scripting: Higher Level Programming for the 21st Century'' at http://home.pacbell.net/ouster/scripting.html )
         see also http://fallin.lv/PythonRumors
          * Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다
          * Industrial Light and Magic 사는 파이썬을 사용하여 광고용 에니메이션을 제작한다
          #include <stdio.h>
          int main(void)
          printf("Hello World\n");
          #include <iostream.h>
          int main()
          public static void main(String[] args)
          System.out.println("Hello World");
          Print "Hello World"
         === Quick Sort in Python ===
          ltList=[y for y in aList[1:] if y<aList[0]]
          gtList=[y for y in aList[1:] if y>=aList[0]]
          '' 기존 C 나 C++ 의 경우는 어떠한 변수를 지정할떄 타입을 꼭 지정해 줘야했다 그 예로 int 나 char 이 있다 하지만 파이썬의 경우는
  • 0PlayerProject . . . . 2 matches
         http://zerowiki.dnip.net/~undinekr/arm_st.rar
         Upload:SourceInsight3_1.zip
         [http://zeropage.org/~mulli2/SSHWinClient-3.1.0-build235.exe ssh win client] 제로 페이지 리눅스 계정 접속 프로그램
          . FileSize/String : 15.7 MiB
          . Format/String : Audio video Interleave
          . Codec/String : XviD
          . BitRate/String : 615Kbps
          . Codec/String : PCM
          . BitRate/String : Microsoft PCM
          . Channel(s)/String : 2 channels
          . SmplingRate/String : 48 Khz
  • 1thPCinCAUCSE/null전략 . . . . 2 matches
         1회 경진대회 팀이였던 null 팀 전략 (["neocoin"], ["1002"])
         ["1002"]가 5분 지각을 했습니다.; 암튼, 35분에 시작을 했고, 일단 5분의 시간을 두고 ["neocoin"] 과 ["1002"] 는 문제들을 읽어나가기 시작했습니다. 한글 문서였기 때문에 3개의 문제를 훑는데에도 5분이면 충분하더군요. ["neocoin"] 은 B번을, ["1002"] 는 A번을 일단 읽고, C 번에 대해서는 같이 읽었습니다. 그리고 미리 문제출제자쪽에서 난이도를 C > A > B 임을 언급했습니다. 문제를 읽어나가면서도 일단 B의 경우가 바로 계산이 나올 것 같아서 B 를 먼저 해결하기로 선택했습니다. 그 다음에는 문제에 대한 이해도가 상대적으로 높았던 A번을 해결하기로 했습니다.
         도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
         ["1thPCinCAUCSE/ProblemB"]
         한 20분정도 잘못진행했었는데, 첫번째는 ["1002"] 가 B 번문제를 제대로 이해하지 못했고 (앞부분만 읽고, 문제의 input-output 을 거꾸로 판단), 두번째는 input 이 100 일때의 output 예상치를 잘못계산한 상태에서 이를 근거로 Test Driven 을 시도해서 추후 발견뒤 테스트를 수정하는동안 시간을 낭비했습니다.
         Sample 로 제공한 데이터들을 만족시키는 코드는 작성하였으나, 여전히 변수들이 다 뽑아져지지 않아서, 임의의 결과데이터 (100인 경우) 에 대해 예상되는 결과를 생각하고 코드를 작성한뒤, 코드와 결과들, 코드로부터 발견되는 변수들을 토대로 연습장에 기록을 했고, 그러던중 ["neocoin"] 이 일반화 공식을 찾아내었습니다.
         적절히 중복코드를 삭제하고 난 뒤, 한 5분정도 Input-Output 코드를 iostream 과 ["STL/vector"] 를 사용하여 작성한 뒤 이를 제출, 통과했습니다.
         ["1thPCinCAUCSE/ProblemA"]
         지난번 IPSC 경험때는 맨땅에 해딩하는 느낌이였는데, 이번에는 비록 입상하지 못했지만, 각각의 과정들이 의식적으로 일어난 점에 대해서 개인적으로는 즐거웠고 명쾌했습니다. 급조되어 2주만에 만난 Pair 치고 손발이 잘 맞았습니다. (이건 방학 두달동안 ["ProjectPrometheus"] 때 하도 서로 싸워대어서. -_-;)
         마지막으로, 2주만에 만난 팀의 전략을 쓴다니, 약간 사기죠 ^^; --["neocoin"]
         ["1thPCinCAUCSE"]
  • 2002년도ACM문제샘플풀이/문제B . . . . 2 matches
         #include <iostream>
         #include <string>
         using namespace std;
         int numOfData;
         string inputData[10];
         int outputData[10];
         string pattern;
         int getIndex(char c)
          int index;
          index=pattern.find_first_of(c);
          pattern = pattern.substr(0, index) + pattern.substr(index + 1);
          return index;
         void input()
          cin >> numOfData;
          for(int i=0;i<numOfData;i++)
          cin >> inputData[i];
          for(int i=0;i<numOfData;i++)
          int index;
          int addNumber = 40320;
          for(int j=0;j<8;j++)
  • 2002년도ACM문제샘플풀이/문제D . . . . 2 matches
         #include <iostream>
         #include <algorithm>
         #include <functional>
         using namespace std;
         struct InputData
          int n;
          int x;
          int weight[30];
         int numberOfData;
         InputData inputData[10];
         void input()
          cin >> numberOfData;
          for(int i = 0 ; i < numberOfData ; i++)
          cin >> inputData[i].n;
          cin >> inputData[i].x;
          for(int j = 0 ; j < inputData[i].n; j++)
          cin >> inputData[i].weight[j];
          for(int i = 0 ; i < numberOfData ; i++)
          sort(&inputData[i].weight[0],&inputData[i].weight[inputData[i].n],greater<int>());
          int team1 = inputData[i].weight[0], team2 = inputData[i].weight[1];
  • 2012/2학기/컴퓨터구조 . . . . 2 matches
          = Course Information =
          * Operating System
          * Instruction set architecture (ISA)
          * Application binary interface
  • 3n 1/이도현 . . . . 2 matches
         2005-12-30 14:39:20 Accepted 3.256 436 56031 C++ 100 - The 3n + 1 problem
         // The 3n + 1 problem
         #include <iostream>
         using namespace std;
         int cycle_length(int input);
         int main()
          int input1, input2;
          while (cin >> input1 >> input2)
          int i;
          int max_count = -1;
          int temp = 0;
          cout << input1 << " " << input2 << " ";
          if (input1 > input2)
          int swap = input1;
          input1 = input2;
          input2 = swap;
          for (i = input1; i <= input2; i++)
         int cycle_length(int input)
          int argument = input; // 전달인자로 넘어온 수 저장
          int count = 0; // 카운트 변수
  • ACM_ICPC/2013년스터디 . . . . 2 matches
          * dynamic programming - [http://211.228.163.31/30stair/eating_together/eating_together.php?pname=eating_together 끼리끼리]
          * linked list - [http://211.228.163.31/30stair/josephus/josephus.php?pname=josephus&stair=11 josephus]
          * 퀵 정렬,이진검색,parametric search - [http://211.228.163.31/30stair/guessing_game/guessing_game.php?pname=guessing_game&stair=10 숫자 추측하기], [http://211.228.163.31/30stair/sort/sort.php?pname=sort&stair=10 세 값의 정렬], [http://211.228.163.31/30stair/subsequence/subsequence.php?pname=subsequence&stair=10 부분 구간], [http://211.228.163.31/30stair/drying/drying.php?pname=drying&stair=10 건조], [http://211.228.163.31/30stair/aggressive/aggressive.php?pname=aggressive&stair=10 공격적인 소]
          * dynamic programming - [http://211.228.163.31/30stair/subset/subset.php?pname=subset 부분 합]
          * greedy method - [http://211.228.163.31/30stair/quick_change/quick_change.php?pname=quick_change 거스름돈], [http://211.228.163.31/30stair/germination/germination.php?pname=germination 발아]
          * BackTracking문제 1문제
          * [http://211.228.163.31/30stair/inflate/inflate.php?pname=inflate inflate]
          * Binary Indexed Tree
          * inflate 모르겠다 알려줘
          * jumping_cow
          * [http://stackoverflow.com/questions/2631726/how-to-determine-the-longest-increasing-subsequence-using-dynamic-programming Time Complexity O(n log n) 의 Up Sequence]
          * [http://211.228.163.31/30stair/bridging/bridging.php?pname=bridging&stair=15 bridging - binary indexed tree를 이용한 Up Sequence 문제]
          * Consonants, Pogo, The Great Wall
          * 김태진 : Dynamic Programming 6.1~6.3
          * Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source에서부터 dist(v) = min{dist(v) + l(u,v)}사용
          * Longest increasing subsequence : DAG로 바꾼다.(increasing하는 곳에만 edge생성됨) 이후 가장 많이 방문하도록 L(j) = 1+ max{L(i) : (i,j)}수행
          * [http://en.wikipedia.org/wiki/Topological_sorting]
          * 김태진 : Dynamic Programming
          - 점화식을 구하는 것은 금방 구했으나, index를 얻어내는 것이 힘들었음.
          - 설명하면 1110110 이라는 것이 있을 때, 1110110이 오기 전에는 110으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 10으로 시작하는 모든 바코드가 있을 것이다. 그리고 1110110이라는 바코드가 오기 전에는 111000으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 11100으로 시작하는 모든 바코드가 있을 것이다. dp테이블에 해당 경우에 대한 경우의 수를 모두 저장해놨기 때문에, 앞에서 부터 차례대로 이전에 올 바코드의 수를 더해나가면 index를 구할 수 있다.
  • ActiveXDataObjects . . . . 2 matches
         {{|Microsoft ADO (ActiveX Data Objects) is a Component object model object for accessing data sources. It provides a layer between programming languages and databases, which allows a developer to write programs which access data, without knowing how the database is implemented. No knowledge of SQL is required to access a database when using ADO, although one can use ADO to execute arbitrary SQL commands. The disadvantage of this is that this introduces a dependency upon the database.
         = in .NET Framework =
         {{|In the newer programming framework of .NET, Microsoft also present an upgraded version of ADO called ADO.NET, its object structure is quite different from that of traditional ADO. But ADO.NET is still not quite popular and mature till now.
         ADO 는 ActiveX 이므로 C++ 이건 VB 이건 Python 이건 어디서든지 이용가능. 하지만, 역시나 VB 나 Python 등에서 쓰는게 편리. 개인적으로는 ODBC 연동을 안하고 바로 ADO 로 C++ Database Programming 을 했었는데, 큰 문제는 없었던 기억. (하긴, C++ 로 DB Programming 할 일 자체가 거의 안생겨서..) --[1002]
  • Adapter . . . . 2 matches
         == Intent ==
         DP의 p147을 보면 '''Adapter'''클래스는 반드시 그것의 '''Adaptee'''를 타입으로 선언해서 가지고 있어야만 한다.이런 경우에는 해당 클래스와 그것에서 상속되는 클래스들만이 기능을 사용(adapt)할수 있다. Smalltalk에서 엄격한 형검사(Strong Typeing) 존재 않으면, class 가 '''Adapter'''에서 '''Adaptee'''로 보내어지는 메세지를 보낼수 있는 이상 '''Adaptee'''가 어떠한 클래스라도 상관없을 것이다. [[BR]]
         자 그럼 Adapter를 적용시키는 시나리오를 시작해 본다. ''Design Patterns''(DP139)에서 DrawingEditor는 그래픽 객체들과 Shape의 상속도상의 클래스 인스턴스들을 모아 관리하였다. DrawingEditor는 이런 그래픽 객체들과의 소통을 위하여 Shape 프로토콜을 만들어 이 규칙에 맞는 메세지를 이용한다. 하지만 text인자의 경우 우리는 이미 존재하고 있는 TextView상에서 이미 구현된 기능을 사용한다. 우리는 DrawEditior가 TextView와 일반적으로 쓰이는 Shape와 같이 상호작용 하기를 원한다. 그렇지만 TextView는 Shape의 프로토콜을 따르지 않는 다는 점이 문제이다. 그래서 우리는 TextShap의 Adapter class를 Shape의 자식(subclass)로 정의 한다. TextShape는 인스턴스로 TextView의 참조(reference)를 가지고 있으며, Shape프로토콜상에서의 메세지를 사용한다.; 이들 각각의 메세지는 간단히 다른 메세지로 캡슐화된 TextView에게 전달되어 질수 있다. 우리는 그때 TextShape를 DrawingEditor와 TextView사이에 붙인다.
         TextShape는 Shape에 translator같은 특별한 일을 위한 기능을 직접 추가한 것으로 Shape의 메세지를 TextView Adaptee가 이해 할수 있는 메세지로 변환 시킨다.:하지만 DrawingEditor가 TextSape에 대한 메세지를 보낼때 TextShape는 다르지만 문법적으로 동일한 메세지를 TextView 인스턴스에게 보낸다. [[BR]]
         여기에 TextShape Adapter가 그것의 Adaptee를 위해 메세지를 해석하는 모습의 interaction diagram이 있다.
         === Message-Forwarding Pluggable Adapter ===
         우리는 Tailored Adapter안에서 메세지를 해석을 위하여 해당 전용 메소드를 만들수 있다. 왜냐하면 디자인 시간에 Adapter와 Adaptee의 프로토콜을 알고 있기 때문이다. The Adapter class는 유일한 상황의 해석을 위해서 만들어 진다. 그리고 각각의 Adapter의 메소드는 Adaptee에 대한 알맞은 메세지들에 대하여 hard-codes(전용 함수 정도의 의미로 생각) 이다
         자 그럼 여기에 예제를 보자. 우리는 employee관리 application을 가지고 있다고 가정한다.어플리케이션 모델은 하나의 인자인, employee의 사회 보장(비밀) 번호(social security number)의 포함하고 application의 사용자 인터페이스는 employee의 사회 보장 번호를 화면상에 뿌려주는 '입력 박스 뷰'를 포함한다.모델의 엑세스하고 초기화 시키기 위한 메소드는 'socialSecurity'와 'socialSecurity:'로 이름 지어져 있다. 입력 박스는 단지 현재의 사회 보장 번호를 뿌리기만 한지만 모델의 값을 요청하는 방법만을 알고있다.( DeleteMe 수정 필요 ) 그래서 우리는 value mesage를 socialSecurity로 변환 해야 한다.우리는 Pluggable Adapter 객체를 이런 목적을 위해서 사용할수 있다.자 우리의 예제를 위한 interaction 다이어 그램을 보자
         이 다이어 그램은 단순화 시킨것이다.;그것은 개념적으로 Pluggable Adpter의 수행 방식을 묘사한다.그러나, Adaptee에게 보내지는 메세지는 상징적으로 표현되는 메세지든, 우회해서 가는 메세지든 이런것들을 허가하는 perform:을 이용하여 실제로 사용된다.|Pluggable Adpater는 Symbol로서 메세지 수집자를 가질수 있고, 그것의 Adaptee에서 만약 그것이 평범한 메세지라면 수집자인 perform에게 어떠한 시간에도 이야기 할수 있다.|예를 들어서 selector 가 Symbol #socialSecurity를 참조할때 전달되는 메세지인 'anObject socialSecurity'는 'anObject perform: selector' 과 동일하다. |이것은 Pluggable Adapter나 Message-Based Pluggable Adapter에서 메세지-전달(message-forwading) 구현되는 키이다.| Adapter의 client는 Pluggable Adapter에게 메세지 수집자의 value와 value: 간에 통신을 하는걸 알린다,그리고 Adapter는 이런 내부적 수집자를 보관한다.|우리의 예제에서 이것은 client가 'Symbol #socialSecurity와 value 그리고 '#socialSecurity:'와 'value:' 이렇게 관계 지어진 Adapter와 이야기 한는걸 의미한다.|양쪽중 아무 메세지나 도착할때 Adapter는 관련있는 메세지 선택자를 그것의 'perform:'.을 사용하는 중인 Adaptee 에게 보낸다.|우리는 Sample Code부분에서 그것의 정확한 수행 방법을 볼것이다.
  • Ajax/GoogleWebToolkit . . . . 2 matches
         The Google Web Toolkit is a free toolkit by Google to develop AJAX applications in the Java programming language. GWT supports rapid client/server development and debugging in any Java IDE. In a subsequent deployment step, the GWT compiler translates a working Java application into equivalent JavaScript that programatically manipulates a web brower's HTML DOM using DHTML techniques. GWT emphasizes reusable, efficient solutions to recurring AJAX challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
  • Ajax2006Summer/프로그램설치 . . . . 2 matches
          * 필요한 것은 '''Eclipse 3.2 Platform Runtime Binary''' 입니다. 용량은 33메가 정도입니다 : [http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2-200606291905/eclipse-platform-3.2-win32.zip LINK]
         3. Workspace 설정 후 '''Help''' - '''Software Updates''' - '''Find and Install''' 을 선택합니다.
         4. 다음 다이얼로그에서는 '''Search for new features to install''' 을 선택 후 '''Next>'''를 클릭합니다.
         5. 맨 위의 '''Callisto Discovery Site'''에 체크박스를 한 후 '''Finish'''를 클릭합니다.
         9. '''Finish''' 를 선택합시다. 그러면 알아서 다운로드를 합니다.
         10. 다운로드가 끝나면 중간에 설치할 것이냐고 물어보는데 '''Install All'''을 선택해 줍시다.
  • AnEasyProblem . . . . 2 matches
         === Input ===
         === Sample Input ===
  • AnEasyProblem/강소현 . . . . 2 matches
         ||Problem|| 2453||User||talin0528||
         public class Main{
          public static void main(String[] args){
          Scanner sc = new Scanner(System.in);
          while(sc.hasNextInt()){
          int i = sc.nextInt();
          printJ(i);
          private static void printJ(int i){
          int [] bin = binI(i);
          int num = 0, count=0;
          while(num<bin.length-1){
          if(bin[num] == 1){
          if(bin[num+1] == 0){
          bin[num+1] = 1;
          bin[num] = 0;
          bin[num] = 0;
          bin[count++] = 1;
          int result = 0;
          for(int k=0; k<bin.length;k++){
          result += bin[k]*Math.pow(2,k);
  • AntOnAChessboard . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10161.html 원문보기]
         === Input ===
         === Sample Input ===
  • Apache . . . . 2 matches
         [ZeropageServer]도 [Linux]와 [Apache]를 이용하여 서비스를 제공한다.
         [http://www.superuser.co.kr/apache/index.htm]
         비슷한 놈으로는 InternetInformationService (IIS) 가 윈도우 환경에서 MS에 의해서 제공되고 있음.
         Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
          * [http://www.wallpaperama.com/forums/how-to-fix-could-not-determine-the-servers-fully-qualified-domain-name-t23.html 위문제상황해결링크]
  • AppletVSApplication/영동 . . . . 2 matches
          * Thinking In Java에서 찾아 썼습니다.
          * main() 함수를 반드시 포함한다.
          * 애플리케이션과는 달리 main()함수가 필요없다.
         ["JavaStudyInVacation/진행상황"]
  • AustralianVoting . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10142.html 원문보기]
         === About [AustralianVoting] ===
         === Input ===
         === Sample Input ===
          || 문보창 || C++ || . || [AustralianVoting/문보창] ||
          || 곽세환 || C++ || . || [AustralianVoting/곽세환] ||
          || 나휘동 || C++ || 110+ || [AustralianVoting/Leonardong] ||
  • AustralianVoting/Leonardong . . . . 2 matches
         #include <iostream>
         #include <vector>
         using namespace std;
         #define IntVector vector<int>
         #define CandidatorVector vector<Candidator>
         #define VoteSheetVector vector<VoteSheet>
          int votedCount;
          IntVector candidateNum;
         bool isWin( const Candidator & candidator, int n )
         int current( const VoteSheet & sheet )
         int pop_front( VoteSheet & sheet )
          return *sheet.candidateNum.erase( sheet.candidateNum.begin() );
         void collectVoting( CandidatorVector & candidators, const VoteSheetVector & sheets )
          for ( int i = 0 ; i < sheets.size() ; i++ )
         void markFall( CandidatorVector & candidators, const int limit )
          for ( int i = 0 ; i < candidators.size() ; i++ )
         int minVotedNum( const CandidatorVector & candidators )
          int result = INT_MAX;
          for ( int i = 0 ; i < candidators.size() ; i++ )
         bool isUnionWin( const CandidatorVector & candidators )
  • BasicJAVA2005/실습1/송수생 . . . . 2 matches
          public static void main(String[] args) {
          int[] arry = new int[3];
          int[] temp = new int[3];
          int strike=0;
          int ball=0;
          for(int i=0; i<3; i++)
          arry[i]=number.nextInt(9);
          System.out.println("입력:");
          Scanner scannumber = new Scanner(System.in);
          for(int i =0; i<3; i++)
          temp[i]=scannumber.nextInt();
          for(int i=0; i<3; i++)
          else for(int j=0; j<3; j++)
          System.out.print("Strike=");
          System.out.print(strike);
          System.out.print("Ball=");
          System.out.println(ball);
  • BasicJava2005/3주차 . . . . 2 matches
         == String에 대하여 ==
          * String은 Java에서 기본적으로 지원하는 String을 저장하는 자료형
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          String line = br.readLine();
          system.out.println(br);
          e.printStackTrace();
         Scanner sc = new Scanner(System.in);
         int x = sc.nextInt();
          * C/C++의 #include 와 using namespace의 결합형
          * [http://pllab.kw.ac.kr/j2seAPI/api/index.html] : 한글 5.0 API 문서
  • BeeMaja . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10182.html 원문보기]
         [http://online-judge.uva.es/p/v101/p10182a.gif] [http://online-judge.uva.es/p/v101/p10182b.gif]
         === Input ===
         === Sample Input ===
  • BirthdayCake . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10167.html 원문보기]
         [http://online-judge.uva.es/p/v101/p10167.gif]
         === Input ===
         === Sample Input ===
  • BlueZ . . . . 2 matches
         The overall goal of this project is to make an implementation of the Bluetooth™ wireless standards specifications for Linux. The code is licensed under the GNU General Public License (GPL) and is now included in the Linux 2.4 and Linux 2.6 kernel series.
         #include <stdio.h>
         #include <stdlib.h>
         #include <unistd.h>
         #include <sys/socket.h>
         #include <bluetooth/bluetooth.h>
         #include <bluetooth/hci.h>
         #include <bluetooth/hci_lib.h>
         int main(int argc, char **argv)
          inquiry_info *ii = NULL;
          int max_rsp, num_rsp;
          int dev_id, sock, len, flags;
          int i;
          perror("opening socket");
          ii = (inquiry_info*)malloc(max_rsp * sizeof(inquiry_info));
          num_rsp = hci_inquiry(dev_id, len, max_rsp, NULL, &ii, flags);
          if( num_rsp < 0 ) perror("hci_inquiry");
          printf("%s %s\n", addr, name);
         #include <stdio.h>
         #include <unistd.h>
  • BuildingParser . . . . 2 matches
         = Building Parser =
         전통적인 Programming Language 수업의 개인과제.
         Building Parsers With Java by Steven John Metsker
         Writing Compilers and Interpreters by Ronald Mak
         Programming Language Processors in Java: Compilers and Interpreters by David Watt, Deryck Brown
         [http://wiki.zeropage.org/pds/20064714242/Addison%20Wesley%20-%20Building%20Parsers%20with%20Java.pdf Building Parsers With Java by Steven John Metsker]
  • Button/영동 . . . . 2 matches
         import javax.swing.*;
          JOptionPane.showInputDialog(
          JOptionPane.INFORMATION_MESSAGE,
          public static void main(String[] args) {
         ["JavaStudyInVacation/진행상황"]
  • CPPStudy_2005_1 . . . . 2 matches
         = Coding =
          [http://sourceforge.net/projects/mingw/ MinGW] GCC의 Windows 포팅
          [http://stlport.org/ STLPort] STLPort, [http://www.kwak101.pe.kr/wiki/wiki.php/STLport_VC%BC%B3%C4%A1 STLPort설치메뉴얼], [http://www.kwak101.pe.kr/kwak101/works/InternData/STLDecryptor_QuickGuide.html STL에러메시지 해독기 설치]
         || 05 || 김태훈 || zyint@zyint.com ||
         || 8/8 || - || Chapter9장만 || chapter 9장 스터디|| [CppStudy_2002_2/STL과제] [FileInputOutput] ||
          * Pair Programming(실습) 이 좋았음
  • CPPStudy_2005_1/STL성적처리_2 . . . . 2 matches
         = Info =
         = Input Text =
         #include <cstdlib>
         #include <iostream>
         #include <string>
         #include <fstream>
         #include <map>
         #include <vector>
         #include <algorithm>
         #include <numeric>
         using namespace std;
         vector<string> tokenize(const string& line);
         bool save_map(vector<string>&, map< string, vector<int> >&);
         double total(const vector<int>&);
         bool print_report(ostream&,
          const map< string, vector<int> >,
          double accu(const vector<int>&) = total);
         int main(int argc, char *argv[]) {
          string line;
          vector<string> token;
  • CPPStudy_2005_1/STL성적처리_2_class . . . . 2 matches
         = Info =
         = Input Text =
         [[NewWindow("http://www.zeropage.org/viewcvs/www/cgi/viewcvs.cgi/accelerated_cpp_stl_grade/?root=sapius", "source code")]]
  • CPPStudy_2005_1/STL성적처리_3 . . . . 2 matches
         = Info =
         = Input Text =
         #include <fstream>
         #include <iostream>
         #include <string>
         #include <vector>
         #include <algorithm> //sort
         #include <numeric> //accumulate
         using namespace std;
          string name;
          vector<int> score;
          unsigned int total;
         void printdata(vector<student_type>& ztable); //출력
         int main()
          sort(ztable.begin(),ztable.end(),zcompare);
          printdata(ztable);
          ifstream fin("data.txt");
          int tmp2,i;
          fin >> tmp.name;
          fin >> tmp2;
  • CVS/길동씨의CVS사용기ForRemote . . . . 2 matches
         먼저 다음 내용의 cvs login을 위한 cvs_set_remote.bat 란 세팅 배치 파일을 만들었다.
         SET PATH=%PATH%;"C:\Program Files\GNU\WinCvs 1.3"
         .\>cvs login
         Logging in to :pserver:neocoin2@165.194.17.15:2401/home/CVS
         cvs server: Updating HelloWorld
         #include <stdio.h>
         int main(int argc, char* argv[]){
          printf("Hello World\n");
         cvs server: scheduling file `HelloWorld.cpp' for addition
         cvs commit: Examining .
         Checking in HelloWorld.cpp;
         initial revision: 1.1
         C:\User>cvs login
         Logging in to :pserver:neocoin2@165.194.17.15:2401/home/CVS
         cvs server: Updating HelloWorld
         #include <iostream>
         using namespace std;
         int main(int argc, char* argv[]){
         cvs commit: Examining .
         Checking in HelloWorld.cpp;
  • Calendar성훈이코드 . . . . 2 matches
         #include <stdio.h>
         void printCalender(int year, int first);
         void printFirstTab(int month, int year);
         int printDays(int month, int year, int leftDays);
         void print_space();
         void print_days(int day);
         int daysOfMonth(int month, int year);
         int IsLeafYear(int year);
         #include "Calender.h"
         void printCalender(int year, int first)
          int month, leftDays;
          printFirstTab(month, year);
          leftDays = printDays(month, year, first);
         void printFirstTab(int month, int year)
          printf(" January %d \n", year);
          printf(" February %d \n", year);
          printf(" March %d \n", year);
          printf(" April %d \n", year);
          printf(" May %d \n", year);
          printf(" June %d \n", year);
  • CarmichaelNumbers/문보창 . . . . 2 matches
         중간에 발생하는 버그를 잡는데 대부분의 시간을 허비했다. 65000 이란 수는 작지만 65000의 제곱은 int형의 범위를 벗어난다. ㅡㅡ; 오버플로우를 교모히 이용한 함정에 고생했다.
         Carmichael Numbers를 찾는 Theorem이 있는 듯하다. 그러나 때려맞추기(?)로 문제를 풀어도 풀린다. 그러나 속도는 떨어진다.
         #include <iostream>
         #include <cmath>
         using namespace std;
         const int NORMAL = 1;
         const int CARMICHAEL = 2;
         bool isPrime(int n);
         void show(int n, int type);
         bool isCarmichael(int n);
         bool passFermatTest(int a, int n);
         int findModulo(unsigned int a, unsigned int n);
         int main()
          int n; // n = input integer ( 2 < n < 65,000)
          while (cin >> n && n != 0)
          continue;
         bool isPrime(int n)
          for (int i = 3; i <= sqrt(n) + 1; i += 2)
         void show(int n, int type)
          cout << "The number " << n << " is a Carmichael number.\n";
  • CeeThreadProgramming . . . . 2 matches
         //http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__beginthread.2c_._beginthreadex.asp
         #include <windows.h>
         #include <stdio.h>
         #include <process.h>
          printf( "In second thread...n" );
          printf( "Thread ID %d => %dn", pArguments, Counter);
         int main()
          printf( "Creating second thread...n" );
          // Create the second thread.
          hThread = (HANDLE)_beginthreadex( NULL, 0, &ThreadedFunction, NULL, 0, &threadID );
          hThread2 = (HANDLE)_beginthreadex( NULL, 0, &ThreadedFunction, NULL, 0, &threadID2 );
          InitializeCriticalSection(&cs);
          // Wait until second thread terminates. If you comment out the line
          // below, Counter will not be correct because the thread has not
          // terminated, and Counter most likely has not been incremented to
          //WaitForSingleObject( hThread, INFINITE );
          //printf( "Counter should be 1000000; it is-> %dn", Counter );
          // Destroy the thread object.
         = Linux pthread =
         #include <stdio.h>
  • ChainsawMassacre . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10043.html 원문보기]
         === About [ChainsawMassacre] ===
         === Input ===
         === Sample Input ===
  • ChocolateChipCookies . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10136.html 원문보기]
         === Input ===
         === Sample Input ===
  • Chopsticks . . . . 2 matches
         === Input ===
         === Sample Input ===
  • Classes . . . . 2 matches
         === [EngineeringMathmethicsClass] ===
         [http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1949638&CategoryNumber=002001026004 Advanced Engineering Mathematics 9/E]
         [http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8971291346 최신 공업수학]
         [http://www.xper.org/wiki/seminar/TheDragonBook]
         [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200012050016 Compilers]
         [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-045JSpring-2005/CourseHome/index.htm MIT open course ware] [[ISBN(0534950973)]]
         [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200309190006 Database Design Concept]
          * Final Demonstration is 5 Jun.
         [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200401090003 Computer Graphics with Open GL 3rd Ed]
         [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-837Fall2003/CourseHome/index.htm MIT open course ware]
         [http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm Linear Algebra]
          * Assingment
          * Intersection - adaptive depth control, bounding volumes, first-hit Speedup
          * Anti-aliasing - distributed RT
          * Coloring - reflection, shade, texture...
          * http://en.wikipedia.org/wiki/Ray_tracing
          * http://en.wikipedia.org/wiki/Anti-aliasing
          * http://www.3dsmax.net/4_article/rendering.htm
         [http://orchid.cse.cau.ac.kr/course/cn/index.php Home]
          * [http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project1 #1] is due to 27 Mar.
  • ClassifyByAnagram/1002 . . . . 2 matches
         hotspot 으로 프로파일링 돌린뒤 중간 쓸데없어보이는 코드들 마구마구 삭제. 가장 병목지점은 Anagram.register, {{{~cpp WordElement}}} (지금은 input 갯수 n 에 대해 n 번 실행)
         나중에 Psyco bind 하고 나서는 4.4 초.
         P3 933, 128 RAM Win98 Python2.2 + Psyco 에서 돌림.
          def __init__(self, anAnagramTable, out=os.sys.stdout):
          for key in anAnagramTable.iterkeys():
          out.write(' '.join(anAnagramTable[key]) + "\n")
          def __init__(self):
          def read(self, anIn=os.sys.stdin):
          for word in anIn:
          aw=''.join(WordElement(aWord))
         psyco.bind(WordElement)
         psyco.bind(Anagram)
         psyco.bind(Formatter)
         if __name__=="__main__":
          print "time : ", end-start
  • ClassifyByAnagram/상규 . . . . 2 matches
         #include <string>
         #include <list>
         #include <map>
         #include <algorithm>
         #include <iostream>
         using namespace std;
          map<string, list<string> > Anagrams;
          void InsertWord(string Word)
          string key = Word;
          sort(key.begin(), key.end());
          if(Anagrams.find(key) == Anagrams.end())
          Anagrams[key] = list<string>();
          void OutputAnagram(list<string> Anagram)
          ostream_iterator<string> os_iter(cout, " ");
          copy(Anagram.begin(), Anagram.end(), os_iter);
          map<string, list<string> >::iterator iter;
          for(iter = Anagrams.begin() ; iter != Anagrams.end() ; iter++)
         void main()
          string word;
          while(cin >> word)
  • Code/RPGMaker . . . . 2 matches
         = Orthogonal projection coordinate system 만들기 =
          public void onSurfaceChanged(GL10 gl, int width, int height) {
          // making background plane
          float[] coordinates = { // position of vertices
          int[] indices = { // index of each coordinate
          // make plane
          Object3D plane = new Object3D(coordinates, uvs, indices, RMObject2D.getTextureIDByColor(Color.white));
          plane.build();
          Util.LOGD("center: " + plane.getTransformedCenter());
          world.addObject(plane);
          // FOV settings
          m_cam.lookAt(plane.getTransformedCenter());
          Config.farPlane = Math.abs(m_cam.getPosition().z) + 1000f;
          buffer = new FrameBuffer(m_width, m_height, FrameBuffer.SAMPLINGMODE_NORMAL);
          init(x1, y1, x2, y2, color);
          init(vStart.x, vStart.y, vEnd.x, vEnd.y, color);
          private void init(float x1, float y1, float x2, float y2, Color color)
          int[] indices = {
          m_polygon = new Object3D(coords, uvs, indices, getTextureIDByColor(color));
         = 2D line class =
  • CodeRace/20060105/민경선호재선 . . . . 2 matches
          private Hashtable<String, Integer> map;
          e.printStackTrace();
          map = new Hashtable<String, Integer>();
          public String readLine() {
          String line = null;
          line = br.readLine();
          e.printStackTrace();
          return line;
          String line = null;
          line = readLine();
          if(line == null)
          Scanner sc = new Scanner(line);
          String word = sc.next();
          if (map.containsKey(word)) {
          int n = map.get(word);
          public static void main(String[] args) {
          alice.print(list);
          private void print(ArrayList<Data> list) {
          int size = list.size();
          for(int i = 0; i < size; i++) {
  • CollaborativeFiltering . . . . 2 matches
         협업 (상호협동) 필터링, Recommender System이라고도 불림. ProjectPrometheus에서 사용한다.
         === Approaches to Collaborative Filtering ===
         problem space가 2차원 matrix 의 형태를 생각해본다. 행에 대해서는 item을, 열에 대해서는 user를 두고, 그에 따른 rating 을 값으로 둔다. 이 matrix 를 이용, CollaborativeFiltering 은 특정 사용자(user) i 에 대해서 rating 을 예측하고, item 들을 추천한다.
          ex) 이 user set 에서 item j 에 대해서 높은 점수 (rating)을 주었을 경우, user i 에게 item j 를 추천한다.
          * Constrained Pearson correlation
          * The Spearman rank correlation
          * The Vector similarity
          * Emtropy-based uncertainty measure
          * Correlation thresholding
         CollaborativeFiltering 의 유용성을 평가하는 기준.
          * NoSmok:PrincipiaCybernetica 에 있는 아주 간단한 개론(처음 보는 사람에게 추천) http://pespmc1.vub.ac.be/COLLFILT.html
          * http://www.ecminer.com/m3_webBrain.html
          * [http://wwwbroy.in.tum.de/~pretschn/papers/personalization/personalization.html Personalization on the Web]
         '''Link 모음'''
          * [http://www.voght.com/cgi-bin/pywiki?RecommenderSystems Recommender Systems]
          * [http://shadow.ieor.berkeley.edu/humor/info.html 버클리의 농담 추천 시스템 Jester]
  • CommonPermutation . . . . 2 matches
         [http://online-judge.uva.es/p/v102/10252.html 원문보기]
         === Input ===
         === Sample Input ===
         walking
         the
  • ComponentObjectModel . . . . 2 matches
         {{|Component Object Model, or COM, is a Microsoft technology for software componentry. It is used to enable cross-software communication and dynamic object creation in many of Microsoft's programming languages. Although it has been implemented on several platforms, it is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework. COM has been around since 1993 - however, Microsoft only really started emphasizing the name around 1997.
         COM은 소프트웨어 컴포넌트를 위해 만들어진 Microsoft 사의 기술이다. 이는 수많은 MS사의 프로그래밍 언어에서 소프트웨어간 통신과 동적 객체생성을 가능케한다. 비록 이 기술이 다수의 플랫폼상에서 구현이 되기는 하였지만 MS Windows 운영체제에 주로 이용된다. 사람들은 .Net 프레임워크가 COM을 어느정도까지는 대체하리라고 기대한다. COM 은 1993년에 소개되고 1997즈음해서 MS가 강조한 기술이다.
         The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET.
         Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
         There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.
         Is COM still supported? Is it going away?
         COM is a feature of Windows. Each version of Windows has a support policy described in the Windows Product Lifecycle.
         COM continues to be supported as part of Windows.
         COM is a planned feature of the coming version of Windows, code-named "Longhorn".
         [COM] [MFC/ObjectLinkingEmbedding]
  • ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 2 matches
         3. ethereal의 기능 중 1개 또는 새로운 기능을 한가지 구현
         WSA prefix 를 가진 함수의 경우 대부분 Winsock 2에서 제공 되기 시작한 것이며, 이 WSAIoctl 역시도 윈속 2에서 지원된다.
         자세한 사항은 MSDN 혹은 Network Programming For Microsoft Windows 를 참조하기 바란다.
         ※ 윈도우 소켓 프로그래밍을 위해서는 윈속 라이브러리를 같이 linking 해야하며, WSActrl 을 사용하기 위해서는 winsock2 라이브러리인 ws2_32.lib 를 포함해야한다.
         #include <mstcpip.h>
         #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
         int _cdecl main(int argc, char **argv)
          SOCKADDR_IN if0;
          int ret,
          unsigned int optval;
          // Load Winsock
          printf("WSAStartup() failed: %d\n", GetLastError());
          // Parse the command line
          printf("Source Port: %d\n", usSourcePort);
          printf("Dest Port: %d\n", usDestPort);
          // Create a raw socket for receiving IP datagrams
          s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED);
          if (s == INVALID_SOCKET)
          printf("WSASocket() failed: %d\n", WSAGetLastError());
          // Get an interface to read IP packets on
  • ConvertAppIntoApplet/영동 . . . . 2 matches
         import javax.swing.*;
          public void init() {
          JOptionPane.showInputDialog(
          JOptionPane.INFORMATION_MESSAGE,
         ["JavaStudyInVacation/진행상황"]
  • Counting . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10198.html 원문보기]
         === About [Counting] ===
         === Input ===
         === Sample Input ===
          || 김상섭 || C++ || . || [Counting/김상섭] ||
          || 황재선 || Java || . || [Counting/황재선] ||
          || 문보창 || C++ || . || [Counting/문보창] ||
          || 하기웅 || C++ || 2시간 || [Counting/하기웅] ||
  • CppStudy_2002_1/과제1/상협 . . . . 2 matches
         #include <iostream>
         using namespace std;
         void Print(char *in,int i=0);
         int main()
          Print(ex);
          Print(ex,0);
          Print(ex,10);
          Print(ex2,100);
         void Print(char *in,int i)
          static int count=0;
          cout<<in<<"\t"<<count<<"\n";
          int tempcount=count;
          cout<<in<<"\t"<<count<<"\n";
         //Programming8_2.cpp
         #include <iostream>
         using namespace std;
          int Calory;
         void StructFunction(CandyBar &in, char *brand="Millennium Munch",
          double weight=2.85,int calory=350);
         int main()
  • CryptKicker . . . . 2 matches
         [http://online-judge.uva.es/p/v8/843.html 원문보기]
         === Input ===
         === Sample Input ===
         또 gh, ing, ed, the, a 와같은 자주출현하는 글자쌍도 존재한다. 만약 암호화된 코드에 덩그라니 한글자짜리 x 가 존재한다면 그것은 a일 가능성이 높아진다. 또 qer가 있따면 이것은 the가 될 확률이 높아지는것이고.
  • CryptKicker2 . . . . 2 matches
         [http://online-judge.uva.es/p/v8/850.html 원문보기]
         알려진 평문 공격법(known plain text attack)이라는 강력한 암호 분석 방법이 있다. 알려진 평문 공격법은 상대방이 암호화했다는 것을 알고 있는 구문이나 문장을 바탕으로 암호화된 텍스트를 관찰해서 인코딩 방법을 유추하는 방법이다.
         여러 줄의 텍스트가 주어졌을 때 같은 케이스에서는 모든 줄에서 같은 치환 방법을 사용한다고 가정하고 그 중 한 줄은 the quick brown fox jumps over the lazy dog라는 평문을 암호화한 것이라는 점을 이용해서 암호화된 텍스트를 복호화하라.
         === Input ===
         === Sample Input ===
         now is the time for all good men to come to the aid of the party
         the quick brown fox jumps over the lazy dog
         programming contests are fun arent they
  • CubicSpline/1002/GraphPanel.py . . . . 2 matches
         class GraphPanel(wxScrolledWindow):
          def __init__(self, parent, id=NewId(), pos=wxDefaultPosition, size=wxDefaultSize):
          wxScrolledWindow.__init__(self, parent, id, pos, size)
          self.cubicSpline = Spline(DATASET)
          self.errorCubicSpline = ErrorSpline(DATASET)
          EVT_PAINT(self, self.OnPaint)
          def mappingToScreenX(self, x):
          def mappingToScreenY(self, y):
          def OnPaint(self, event):
          dc = wxPaintDC(self)
          dc.BeginDrawing()
          #self.drawGuideLines(dc)
          dc.EndDrawing()
          def drawGuideLines(self, dc):
          marginX = 100
          marginY = 100
          dc.DrawLine(marginX,marginY, marginX, cy-marginY)
          dc.DrawLine(marginX,cy-marginY, cx-marginX, cy-marginY)
          self.plotCubicSpline(dc)
          self.plotErrorCubicSpline(dc)
  • D3D . . . . 2 matches
         "Advanced 3D Game Programming using DirectX" - study.
         이런 종류의 책들이 다 그렇듯이, winapi를 사용한다.[[BR]]
         그렇기 때문에, 초반의 한 chapter는 거의다 winapi를 사용해서 [[BR]]
         추천 도서: Inside DirectX (필요로 한다면 말하시오. 전자책으로 있어요. --;;)
          Tricks of the Windows Game Programming Gurus : Fundamentals of 2D and 3D Game Programming. (DirectX, DirectMusic, 3D sound)
         ==== point3 구조체 ====
         struct point3
          point3 () {}
          point3 (float X, float Y, float Z) : x(X), y(Y), z(Z) {} // 초기화 목록을 사용. (compiler가 작업을 더 잘 수행할 수 있도록 해준다더군.)
         ==== point3의 연산자와 기본적 함수 ====
         struct point3
          point3 operator +(point3 const &a, point3 const &b);
          point3 operator -(point3 const &a, point3 const &b);
          point3 operator *(point3 const &a, float const &b);
          point3 operator *(float const &a, point3 const &b);
          point3 operator /(point3 const &a, float const &b);
         inline void point3::Assign (float X, float Y, float Z)
         inline float point3::Mag () const
         inline float point3::MagSquared () const
         inline void point3::Normailze ()
  • DPSCChapter3 . . . . 2 matches
         == Intent ==
         http://zeropage.org/~comein2/design_pattern/31page.gif
          구조를 가지게 된다. 가령 CarEngine 하위 구조의 엔진들, CarBody 구조의 body 등등을 가지게 된다.
          (결국, 각각이 CarEngine을 Base Class로 해서 상속을 통해 Ford Engine,Toyota Engine등등으로 확장될 수 있다는 말이다.)
          http://zeropage.org/~comein2/design_pattern/32page.gif
          구체화 없이 관계된 혹은 의존적인 객체 집합을 만들기 위한 인터페이스를 제공하는" (Intent 부분에서 언급한 내용)
          클래스이다. 그것은 추상적인 상품 생성 함수들(makeCar,makeEngine,makeBody)을 정의한다. 그 때 우리는 상품 집합 당
          http://zeropage.org/~comein2/design_pattern/33page.gif
          CarPartFactory>>makeEngine
          FordFactory>>makeEngine
          ^FordEngine new
          ToyotaFactory>>makeEngine
          ^ToyotaEngine new
          http://zeropage.org/~comein2/design_pattern/34page.gif
          "Create the top-level part, the car object which starts out having no subcomponents, and add an engine, body, etc."
          addEngine: factory makeEngine;
          만약, 팩토리가 FordFactory의 인스턴스였다면, 자동차에 추가되기 위해 얻어진 엔진은 FordEngine일 것이다. 만약 팩토리가 ToyotaFactory였다면, ToyotaEngine은 팩토리의 makeEngine에 의해서 만들어 질 것이고, 그 때 자동차에 추가될 것이다.
          car addEngine:
          ifTrue: [FordEngine new]
  • DataCommunicationSummaryProject/Chapter12 . . . . 2 matches
         = Internet In Space (위성) =
  • DataCommunicationSummaryProject/Chapter9 . . . . 2 matches
          * cellular networks가 예상보다 빠르게 성장한데 비하여,short-range mobile systems은 덜 성공적이였다.그 이유에는 속도,유선에 비하여 신뢰성의 떨어짐, 경쟁적인 기준이 있다.물론 Cordless phones 처럼 인기있는것도 있지만, 점점 범위를 늘리려고 한다. 또한roaming에서의 실패성이 많다.적외선이 laptop 이나 PDA에서 거의 사용되지만 잘 사용되지 않는다.
          * 적외선 사용이 실패였지만 아직도 많은 연구와 회사의 사용이 있다.4세대 모바일 시스템으로 주목 받고 있다.roaming하는데 별 어려움 없이 랜과 3새대 휴대폰과 Bluetooth와의 연결도 가능할 것이다.
          * ISM(Industrail,Scientific, and Medical) 는 의사소통을 위한것이 아니다. 따라서 이 범위의 주파수는 국가에서 나두었다. 그래서 무선 전화나 무선 랜에서 사용된다.
          * IEEE 802.11b보다는 Wi-Fi 나 무선 이터넷이 우리에게 잘 알려져 있다. 물론 IEEE 802.11b를 기준으로 한다. Wireless Fidelity(통신에서 충실도의 뜻으로 많이 쓰인다. 예를 들어 " a high ~ receiver 고성능 라디오(cf. HI-FI) ") 의 약자이다. WECA(the Wireless Ethernet Compatiility Alliance)의 트레이드 마크이기도 하다.
          * CCK(Complementary Code Keying)라고 불리는DSSS의 2.4GHZ를 사용한다. 물론 기존의 기계와 호환성을 기진다. MAC하는 방법은 CSMA/CA(여기서 A는 avoidance이다 유선과는 틀리다) half-duples이다.shared이다. 대역폭이 11Mbps이지만 오보헤드가 심하다. 여기에다가 쉐어드이니 장에가 심하면 1-2Mbps밖에 안된다.하지만 데이터 전송률은 쓸만하다. 이러한 낭비를 줄이려고 차세대로 갈수록 물리적인 데이터 율을 줄인다.
          * ad-hoc networking
          * access point networking
         === Roaming ===
          * Ad-hoc networking in HiperLan : 중간의 노드를 거쳐서 가는것 같다. 잘 모르겠다.
         === Weakness in WEP ===
          * built-in key management system - 이건 잘 모르겠다. 가증한 키는 제한되어 있고, 해킹하는 데에는 선형시간이 걸린다.
          * Infrared LANs : 볼거 없다. 그냥 적외선으로 랜 하는거다.
          * Frequency Hopping을 사용한다.
  • Debugging/Seminar_2005 . . . . 2 matches
         = Debugging Seminar 2005 =
          * Debug by describing
          * ask the code
          * fully implemented and fully debugged, before the developer(s) responsible for that feature move on to the next feature -> debugging The development Process
          * Study The source with debugger
          * [Debugging]
  • DebuggingSeminar_2005 . . . . 2 matches
          || [DebuggingSeminar_2005/UndName] || UndName 사용법 ||
          || [DebuggingSeminar_2005/DebugCRT] || Debug CRT 라이브러리 활성화 예제. extracted from Debugging Application ||
          || [DebuggingSeminar_2005/AutoExp.dat] || VC IDE의 Watch 윈도우에 사용자 데이터형의 표현형을 추가하는 파일 ||
          || [http://www.sysinternals.com/ SysInternal] || [http://www.sysinternals.com/Utilities/ProcessExplorer.html Process Explorer Page] ||
          || [http://www.dependencywalker.com/ DependencyWalker] || Dependency Walker (Included at VS6) ||
          || [http://www.compuware.com/products/devpartner/softice.htm SoftIce for DevPartner] || 데브파트너랑 연동하여 쓰는 SoftIce, [http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/SoftICE.shtml Freeware Download] ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rebase.asp ReBase MSDN] || Rebase is a command-line tool that you can use to specify the base addresses for the DLLs that your application uses ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_viewing_decorated_names.asp undname.exe] || C++ Name Undecorator, Map file 분석툴 ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/_core_c_run2dtime_library_debugging_support.asp Debug CRT] || VC++4 에서 지원하기 시작한 C런타임 라이브러리 ||
         [Debugging] [Debugging/Seminar_2005] [Seminar] [DebuggingApplication]
  • DermubaTriangle . . . . 2 matches
         [http://online-judge.uva.es/p/v102/10233.html 원문보기]
         [http://online-judge.uva.es/p/v102/p10233.gif]
         === Input ===
         === Sample Input ===
  • DirectVariableAccess . . . . 2 matches
         스몰토크 진영에서는 IndirectVariableAccess를 선호했다. 그러다가 켄트아저씨가 DirectVariableAccess를 써 보고는 그것의 가독성에 놀랐다.
         하지만 이 클래스가 상속이 될 가능성이 있다면, setter/getter를 오버라이딩 해서 사용할수 있으므로, IndirectVariableAccess를 쓰는 것이 괜찮다.
         void Point::setXnY(int xNumber, int yNumber)
  • DocumentObjectModel . . . . 2 matches
         Upload:DOM_Inspector.png
         Document Object Model (DOM) is an application programming interface to access HTML and XML documents. It is programming language and platform independent. Behind the interface the document is represented with an object-oriented model.
         Different variants of DOMs were initially implemented by web browsers to manipulate elements in an HTML document. This prompted the World Wide Web Consortium (W3C) to come up with a series of standard specifications for DOM (hence called W3CDOM).
         DOM puts no restrictions on the document's underlying data structure. A well-structured document can take the tree form using DOM.
         Most XML parsers (e.g., Xerces) and XSL processors (e.g., Xalan) have been developed to make use of the tree structure. Such an implementation requires that the entire content of a document be parsed and stored in memory. Hence, DOM is best used for applications where the document elements have to be randomly accessed and manipulated. For XML-based applications which involve a one-time selective read/write per parse, DOM presents a considerable overhead on memory. The SAX model is advantageous in such a case in terms of speed and memory consumption.
  • Doublets . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10150.html 원문보기]
         === Input ===
         === Sample Input ===
  • Doublets/황재선 . . . . 2 matches
          * Sample Input은 동작하는데 모든 경우에 되는지는 모르겠다.. 채점 사이트가 SE5.0을 지원하면 올려봐야지..
          private List<String> wordList;
          private Stack<String> solutionStack;
          private Stack<String> stack;
          private int minWordCount;
          private int start;
          private int end;
          private int[][] doublet;
          wordList = new ArrayList<String>();
          stack = new Stack<String>();
          solutionStack = new Stack<String>();
          minWordCount = Integer.MAX_VALUE;
          public String readWord() {
          return new Scanner(System.in).useDelimiter("\n").next().trim();
          public boolean isDoublet(String word1, String word2) {
          int differentBitCount = 0;
          public void storeWord(String word) {
          int n = wordList.size();
          doublet = new int[n + 1][n + 1];
          for(int from = 1; from <= n; from++) {
  • EditStepLadders/황재선 . . . . 2 matches
          private List<String> wordList;
          private Stack<Integer> stack;
          private int[][] connection;
          private int startingPoint;
          private int longestPassedWordCount;
          wordList = new ArrayList<String>();
          stack = new Stack<Integer>();
          public String readWord() {
          return new Scanner(System.in).nextLine();
          public void storeWord(String word) {
          int size = wordList.size();
          connection = new int[size + 1][size + 1];
          for(int from = 1; from <= size; from++) {
          String word = wordList.get(from - 1);
          for(int to = from + 1; to <= size; to++) {
          String nextWord = wordList.get(to - 1);
          if (startingPoint == 0) {
          startingPoint = from;
          public boolean isEditStep(String word1, String word2) {
          int length1 = word1.length();
  • EdsgerDijkstra . . . . 2 matches
          * http://www.cs.utexas.edu/users/EWD/indexEWDnums.html - Dijkstra 의 컬럼들을 읽을 수 있는 곳.
          * [http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD227.PDF StepwiseProgramConstruction] - Structured Programming
          * [http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF TheHumbleProgrammer]
         위의 Stepwise Program Construction과 The Humble Programmer는 초강력 추천. 감동의 물결. 아마 그 글을 읽고 몇 주 동안은 여러가지 실험을 해보며 흥미진진하게 보내게 될 것이며, 몇 몇은 프로그래밍에 획기적인 전환점을 맞이할 수 있을 것이라 믿음. --김창준
  • EffectiveSTL/Container . . . . 2 matches
          * STL을 구성하는 핵심 요소에는 여러 가지가 있다.(Iterator, Generic Algorithm, Container 등등). 역시 가장 핵심적이고, 조금만 알아도 쓸수 있고, 편하게 쓸수 있는 것은 Container다. Container는 Vector, List, Deque 과 같이 데이터를 담는 그릇과 같은 Object라고 보면 된다.
          * STL의 Container들의 장점이라고 한다면, 역시 유연성, 메모리 관리 알아서 하기, 자신이 알아서 늘었다 즐었다 하기 등등이 있겠다. 또한 인터페이스가 이거나 저거나 비슷비슷해서 하나만 공부하면, 쉽게 다른것도 쓸수 있다는 것도 또 하나의 장점이 될수 있겠다.
          * 큰 1장 Containers에서는 상황에 맞는 적절한 Container 고르는 법, 효율성 극대화 하기 등등을 다룬다.
         = Item1. Choose your containers with care. =
         == STL이 지원하는 Containers ==
          * Sequence Containers - vector, deque, list, string( vector<char> ) 등등
          * Associative Containers - set, multiset, map, multimap 등등
          * vector가 좋다고 써있다. 잘 쓰자. 가끔가다 시간,저장공간 등등에 있어서 Associative Containers를 압도할때도 있다고 한다.
          * vector 는 Sequence Container 니까 보통 Associative Container 들(주로 Map)보다 메모리낭비가 덜함. 그대신 하나 단위 검색을 할때에는 Associative Container 들이 더 빠른 경우가 있음. (예를 들어 전화번호들을 저장한 container 에서 024878113 을 찾는다면.? map 의 경우는 바로 해쉬함수를 이용, 한큐에 찾지만, Sequence Container 들의 경우 처음부터 순차적으로 좌악 검색하겠지.) --[1002]
         == Contiguous-memory Containers & Node-based Containers ==
          * 전자는 배열을 기반으로 하는 Container(즉, 동적 메모리 할당을 할때 할당된 메모리들이 연속적이 된다), 후자는 노드를 기반으로 하는 Container(노드의 경우는 반드시 연속적인 메모리가 아닐 수 있다.)다. 노드가 뭔지는 링크드 리스트를 짜보면 알게 된다.
          * 전자에는 vector, string, deque 등이 있다. 뭔가 또 복잡한 말이 있긴 한데 그냥 넘어가자. 대충 insert, delete가 일어나면 기존의 원소가 이동한다는 말 같다.
          * 후자에는 list 등이 있다. 노드는 그냥 포인터만 바꿔 주면 insert, delete가 자유자재로 된다는거 다 알것이다.
         == STL Container 고르는 팁 ==
          * 양끝에서 insert, delete 하려면? Associative Containers는 쓰면 안된다.
          * Random Access Iterator(임의 접근 반복자)가 필요하다면, vector, deque, string 써야 한다. (rope란것도 있네), Bidirectional Iterator(양방향 반복자)가 필요하다면, slist는 쓰면 안된다.(당연하겠지) Hashed Containers 또 쓰지 말랜다.
          * Insert, Delete 할때 원소의 인덱스 위치가 변하면 안된다? 그러면 Contiguous-memory Containers는 쓰면 안된다. (해당 원소의 인덱스 위치가 변한다.)
          * Search 속도가 중요하다면 Hashed Containers, Sorted Vector, Associative Containers를 쓴다. (바로 인덱스로 접근, 상수 검색속도)
          * Insert, Delete를 효율적으로 쓰려면, Node Based Containers를 쓰자.
          * Iterator, Pointer, Reference 갱신을 최소화 하려면 Node Based Containers를 쓴다.
  • EightQueenProblem . . . . 2 matches
         === Input ===
         이 프로그램은 Input을 요구하지 않는다.
         시간을 잴 때에는 Wiki:SandglassProgramming 에 소개된 프로그램을 이용하면 편리합니다. 화장실을 다녀온다든가 할 때 필요한 중간 멈춤(pause) 기능도 있습니다.
         ||이준욱|| 3h:20m || 40 lines || C || ["EightQueenProblem/이준욱"] ||
         ||iCarus|| 0h:30m || 30 lines || C || ["EightQueenProblem/lasy0901"] ||
         ||["이덕준"]|| 1h:10m || 73 lines || C++ || ["EightQueenProblem/이덕준소스"] ||
         ||최태호|| 0h:35m || 71 lines || C++ || ["EightQueenProblem/최태호소스"] ||
         ||["최광식"]|| 2h:38m || 141 lines || C++ || . ||
         ||이선호|| 2h:29m || 58 lines || C++ || ["EightQueenProblem/이선호"] ||
         ||강석천|| 4h:50m || 135 lines (+ 82 line for testcode. total 217 lines)|| python || ["EightQueenProblem/강석천"] ||
         ||강석천|| 0h:47m || 72 lines (+ 58 line for testcode. total 132 lines)|| python || . ||
         ||임인택|| 2h:00m || 75 lines || C++ || ["EightQueenProblem/임인택"] ||
         ||이선우|| 1h:05m || 114 lines || java || ["EightQueenProblem/이선우"] ||
         ||최봉환|| 2h:30m || 71 lines || C++ || ["EightQueenProblem/최봉환"] ||
         ||이창섭|| 1h:9m || 73 lines || C++ || ["EightQueenProblem/이창섭"] ||
         ||이강성|| 1h:50 || 36 lines || python || ["EightQueenProblem/이강성"] ||
         ||햇병아리|| 10h:50m || 111 lines || C || ["EightQueenProblem/햇병아리"] ||
         ||kulguy|| 10h:00m || 229 lines || java || ["EightQueenProblem/kulguy"] ||
         ||김형용|| 8h:00m || 115 lines (+ 63 line for testcode. total 178 lines) || python || ["EightQueenProblem/김형용"]||
         ||서상현|| 2h:18m || 62 lines || C || ["EightQueenProblem/서상현"] ||
  • EightQueenProblem/kulguy . . . . 2 matches
          public static void main(String[] args)
          QueensProblem problem = new QueensProblem(Integer.parseInt(args[0]));
          System.out.println("소요시간(ms) = " + String.valueOf(System.currentTimeMillis() - start));
          System.out.println("가능한 해답 = " + String.valueOf(problem.getSuccessNum()));
          public QueensProblem(int queensNum)
          public int getSuccessNum()
          public boolean locate(int index)
          if (index == queensNum)
          // System.out.println("성공 " + String.valueOf(++successNum));
          // System.out.println(board);
          Chessboard.PointList points = board.getAvailablePoints();
          Point point = null;
          while ((point = points.nextPoint()) != null)
          if(point.getY() == index + 1)
          Queen queen = new Queen(point);
          if (locate(index + 1))
          private int queensNum;
          private int successNum;
          public Chessboard(int size)
          availablePointsStack = new Stack();
  • EightQueenProblem/이선우 . . . . 2 matches
          public static final char BLANK_BOARD = '.';
          public static final char QUEEN_MARK = 'Q';
          private int numberOfBoard;
          private int sizeOfBoard;
          private int [] board;
          public NQueen( int sizeOfBoard )
          board = new int[sizeOfBoard];
          protected void initBoard()
          initBoard( 0 );
          protected void initBoard( int from )
          for(int i=from; i<sizeOfBoard; i++ ) board[i] = -1;
          public void findPosition()
          initBoard();
          setLinePosition( 0 );
          private void setLinePosition( int line )
          if( line == sizeOfBoard ) {
          //printBoard();
          initBoard( line-1 );
          for( int i=0; i<sizeOfBoard; i++ ) {
          board[line] = i;
  • EightQueenProblem/이선우2 . . . . 2 matches
         import java.io.PrintStream;
          public static final char DEFAULT_BOARD_MARK = '.';
          public static final char DEFAULT_QUEEN_MARK = 'Q';
          public static final char DEFAULT_LINE_BREAK = '\n';
          private int size;
          private int [] board;
          private int numberOfAnswers;
          private int hasAnswer;
          private char lineBreak;
          private PrintStream out;
          public NQueen2( int size ) throws Exception
          board = new int[size];
          public int getSize()
          lineBreak = DEFAULT_LINE_BREAK;
          public void setOutputFormat( final char boardMark, final char queenMark, final char lineBreak )
          this.lineBreak = lineBreak;
          public int countAnswers()
          public int countAnswers( final PrintStream out )
          private void setQueenAt( int line )
          if( line == size ) {
  • EightQueenProblem/이선우3 . . . . 2 matches
         == Point.java ==
         public class Point
          private int x;
          private int y;
          public Point() {}
          public Point( int x, int y )
          public int getX()
          public int getY()
          public void setX( int x )
          public void setY( int y )
          public void setPoint( int x, int y )
          public boolean isSamePoint( Point another )
          if( x == another.x && y == another.y ) return true;
         public abstract class Chessman extends Point
          public Chessman( int x, int y )
          public abstract boolean doIHurtYou( Chessman another );
         import suwlee.game.nqueen.Point;
          public Queen( int x, int y )
          public boolean doIHurtYou( Chessman another )
          if( getX() == another.getX() ) return true;
  • EightQueenProblem/임인택/java . . . . 2 matches
          int QUEEN;
          int Queen[][];
          Queen(int noq)
          Queen = new int[QUEEN][QUEEN];
          for(int i=0; i<QUEEN; i++)
          public void get_Queen(int x, int y)
          if(y==QUEEN-1) print_result();
          for(int i=0; i<QUEEN; i++)
          public void print_result()
          int i,j;
          System.out.print(Queen[j][i] + " ");
          System.out.println();
          public void reset(int fromline)
          int i,j;
          for(j=fromline; j<QUEEN; j++)
          public boolean check(int i, int j)
          int x, y, sum=0;
          public static void main(String args[])
          System.out.println("ex) java Queen NumofQueens");
          Queen myqueen = new Queen(Integer.parseInt(args[0]));
  • EightQueenProblemSecondTry . . . . 2 matches
         이번에는 소스코드를 모두 삭제하고, 맨땅에서 다시 시작을 합니다. EightQueenProblem을 만족하는(즉 하나의 해법만 얻는) 프로그램을 다시 한번 작성합니다. 자신이 처음 EightQueenProblem을 풀면서 얻었던 통찰(insight)만을 이용하고, 가능하면 더 깔끔한 해답을 얻으려고 노력하면서 말이죠.
         see also DoItAgainToLearn
         || 강석천 ||4h:50m||1h:56m||.|| 135 lines || 130 lines || . || python || python || . ||
         || 이선우 ||1h:05m||1h:52m||52m|| 114 lines || 147 lines(+ test code 28 lines) || 304 lines || java || java || java ||
          * LOC - ''Lines of Code. 보통 SLOC(Source Lines of Code)이라고도 함.''
  • EightQueenProblemSecondTryDiscussion . . . . 2 matches
          UnAttackableList0 = self.GetUnAttackableOthersPositionList (0)
          for UnAttackablePosition0 in UnAttackableList0:
          UnAttackableList1 = self.GetUnAttackableOthersPositionList (1)
          continue
          for UnAttackablePosition1 in UnAttackableList1:
          UnAttackableList2 = self.GetUnAttackableOthersPositionList (2)
          continue
          for UnAttackablePosition2 in UnAttackableList2:
          ## make clone and append the
          UnAttackableList = self.GetUnAttackableOthersPositionList (Level)
          for UnAttackablePosition in UnAttackableList:
         제가 보기에 현재의 디자인은 class 키워드만 빼면 절차적 프로그래밍(procedural programming)이 되는 것 같습니다. 오브젝트 속성은 전역 변수가 되고 말이죠. 이런 구성을 일러 God Class Problem이라고도 합니다. AOP(Action-Oriented Programming -- 소위 Procedural Programming이라고 하는 것) 쪽에서 온 프로그래머들이 자주 만드는 실수이기도 합니다. 객체지향 분해라기보다는 한 거대 클래스 내에서의 기능적 분해(functional decomposition)가 되는 것이죠. Wirfs-Brock은 지능(Intelligence)의 고른 분포를 OOD의 중요요소로 뽑습니다. NQueen 오브젝트는 그 이름을 "Manager"나 "Main''''''Controller"로 바꿔도 될 정도로 모든 책임(responsibility)을 도맡아 하고 있습니다 -- Meyer는 하나의 클래스는 한가지 책임만을 제대로 해야한다(A class has a single responsibility: it does it all, does it well, and does it only )고 말하는데, 이것은 클래스 이름이 잘 지어졌는지, 얼마나 구체성을 주는지 등에서 알 수 있습니다. (Coad는 "In OO, a class's statement of responsibility (a 25-word or less statement) is the key to the class. It shouldn't have many 'and's and almost no 'or's."라고 합니다. 만약 이게 자연스럽게 되지않는다면 클래스를 하나 이상 만들어야 한다는 얘기가 되겠죠.) 한가지 가능한 지능 분산으로, 여러개의 Queen 오브젝트와 Board 오브젝트 하나를 만드는 경우를 생각해 볼 수 있겠습니다. Queen 오브젝트 갑이 Queen 오브젝트 을에게 물어봅니다. "내가 너를 귀찮게 하고 있니?" --김창준
         음.. 아직 구현은 안해보고 그냥 생각해본거지만, 체스 말과 보드가 타이트하게 연결되어도 큰 문제는 아닐 것 같은데요. 보드를 Singleton 으로 모든 Queen들이 공유하는 객체로 생각해도 좋을 것 같고요. (Queen에 눈이 달렸던지, 그렇지 않으면 체스 플레이어같이 Queen이 존재하고 있는 세계에 대한 답을 내려줄 신 (?) 이 존재하던지 둘중 하나가 될듯 하다는. ^^;) 아직 OO 관점으로는 그냥 생각만 해보는중. --석천
         for each city in the route:
         제 말을 {{{~cpp mainProgram.runEverything()}}}을 실행하면 모든 게 마술처럼 알아서 실행되게 하라는 뜻으로 오해하지는 않았으면 합니다. 위 superman의 예에서는, 전자의 경우 superman을 제대로 이용해 먹으려면 superman의 내부적 구조를 알아야 합니다. superman의 구현에 종속적이 되는 셈이죠. 하지만 후자는 그게 디커플링이 됩니다. 자기가 매일 가는 길에 있는 도시를 방문하는 것은 superman이 스스로 수행할 수 있어야 할 책임이 있다 이거죠. Queen이라는 객체가 여덟개가 있다고 칩시다. 얘네들한테 "너는 저 여왕을 공격할 수 있니?"하고 묻고 그 결과를 가지고 여왕을 배치하고 하는 것을 하나의 추상(abstraction)으로 묶는 것이 어떨까요? 묻지말고 "시키자"는 것이죠 -- 여덟개의 똑똑한 Queen 객체를 만들고 하나씩 "판 위로 올라가라"고 시킵니다. 이렇게 하면 Board와 Queen에 커플링이 생겨서 문제가 되는 건 아니냐고 했는데, 어차피 Queen은 Board 없이는 별 의미가 없고, 또, 그렇게 하지 않더라도 어떻게든 비슷하거나 혹은 더 큰 정도의 커플링이 존재합니다. 어쨌건, 지금 단계에서는, 더 나은 방법이라기보다 그냥 다른 방법이라고 편안하게 생각하면 좋을 듯 합니다. --김창준
  • Emacs . . . . 2 matches
          * [http://ftp.gnu.org/pub/gnu/emacs/windows/ Download]는 여기서 하면 됩니다. 윈도우즈 용이라 버전이 약간 낮네요.
         받아서 압축을 풀고 바로 사용할 수 있습니다. 하위 폴더중에 bin 폴더가 있는데 그 안에 있는 실행파일이 있습니다.
         === Minor Mode ===
          * [http://wiki.zeropage.org/wiki.php/Emacs/Mode/MinorMode/hs-minor-mode hs-minor-mode]
         이를 위해 먼저 [http://www.emacswiki.org/cgi-bin/wiki/PythonMode PythonMode]를 [http://sourceforge.net/projects/python-mode/ Download]합니다.
          (add-to-list 'interpreter-mode-alist '("python" . python-mode))
          * GNU Emacs 사용시 Windows 7 환경에서 c:\Users\[UserName]\AppData\Roaming 디렉토리에 저장됩니다.
          * .emacs 파일을 작성하거나 편집할 필요가 있을 경우에는 C-x-f ~/.emacs로 해 주면 Windows 환경에서도 알아서 HOME 디렉토리 밑에 만들어 줍니다.
          * ntemacs 에서는 C:\Documents and Settings\UserName\Application Data 에 저장됩니다.
         ; Initialize
         (package-initialize)
          * 해당 패키지 줄에서 i(install)로 설치할 패키지의 선택, d(delete)로 지울 패키지 선택, x(execute)로 선택된 작업들 실행.
          * 추천 패키지 : [Anything] or [helm], [auto-complete], [tabbar], [ecb], [yasnippet]
          4. emacs 설정 파일인 .emacs 혹은 init.el 파일에 설치한 cedet을 로드하기위한 elisp코드를 다음과 같이 써준다.
         ;; 'warning: cedet-called-interactively-p called with 0 arguments, but requires 1' error repairing
         (setq byte-compile-warnings nil)
         ;; See cedet/common/cedet.info for configuration
         ;; *This enalbes the database and idle repasitiory
         (semantic-load-enable-minimum-features)
         참고#2. lisp코드중에서 load file 하는 부분을 나같은 경우는(load-file "~/.emacs.d/cedet/common/cedet.el")과 같이 적었다. 경로의 ~/는 나는 윈도우에서 cygwin을 통해서 emacs를 쓰고 있어서 환경변수 HOME의 경로를 저렇게 표현할 수 있다.
  • EmbeddedSystemClass . . . . 2 matches
         http://www.huins.com/new1//img/u-51.jpg
         Intel XScale PXA255 400MHz processor 탑재
         Linux, WinCE. Nucleus/uCOS-II RTOS운영체제 채택.
         128MB SDRM, 32MB Flash, Ethernet 100 M 2port
         [http://www.huins.com/new1/sub/sub2-3-6.htm HUINS 보드 소개 페이지]
         [http://zeropage.org/common-ftp/@embedded-system-cd/HUINS/pxa255_pro3v5.2A.iso 내장형시스템 보드 CD DOWNLOAD] : PXA255A (Intel XScale 400Mhz)
         패키지 묶음 설치에서 '''Standard Package''' 만을 선택한다. (x-windows, gnome 은 차후 필요한 부분만을 설치한다.)
         최신 버전의 리눅스를 구해서 할 경우 페도라 Full install 의 경우 큰 문제가 없으나,
         aptitude install linux-headers-''[version]''
         aptitude install linux-image-''[version]''
         aptitude install gcc
         aptitude install make
         // tftp 터널링에 필요한 inetd 설치, tftpd 설치
         aptitude install openbsd-inetd
         aptitude install tftp-hpa tftpd-hpa
         aptitude install minicom
         aptitude install nfs-kernel-server
         aptitude install nfs-client
         // 필요할 경우 다음의 명령어를 통해서 x-window, gnome 을 설치한다.
         aptitude install x-window-system
  • EnglishSpeaking/TheSimpsons/S01E01 . . . . 2 matches
         = Title : Simpsons Roasting on an Open Fire =
          * Interviewer + Teacher
         Marge : Hmm. I get the feeling there's something you haven't told me, Homer.
         Marge : You tell me that all the time.
         Homer : I don't deserve you as much as a guy with a fat wallet...and a credit card that won't set off that horrible beeping.
         Marge : I think it does have something to do with your Christmas bonus. I keep asking for it,but--
         Homer : Well, I would- I- I wanna do the Christmas shopping this year.
         [EnglishSpeaking/TheSimpsons]
  • ErdosNumbers . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10044.html 원문보기]
         === Input ===
         ''Smith, M.N., Martin, G., Erdos, P.: Newtonian forms of prime factors matrices''
         ''Martin, G.''
         각 시나리오에 대해 "Scenario i"(i는 시나리오 번호)라는 내용이 들어있는 행을 우선 출력한다. 그 다음 줄부터는 입력된 모든 이름에 대해 이름과 에르되시 수를 출력한다. 저자의 이름은 입력된 순서대로 출력된다. 에르되시 수는 시나리오에 들어있는 논문 데이터베이스를 기반으로 계산한다. 데이터베이스에 있는 논문으로 볼 때 에르되시와 전혀 관계가 없는 저자들의 에르되시 수는 "infinity"로 출력한다.
         === Sample Input ===
         Smith, M.N., Martin, G., Erdos, P.: Newtonian forms of prime factor matrices
         Erdos, P., Reisig, W.: Stuttering in petri nets
         Smith, M.N., Chen, X.: First oder derivates in structured programming
         Jablonski, T., Hsueh, Z.: Selfstabilizing data structures
         Hsueh, Z. infinity
         Link..라는 책이 생각나는군요. 에르도스 넘버... - [임인택]
  • EuclidProblem . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10104.html 원문보기]
         === Input ===
         === Sample Input ===
  • Expat . . . . 2 matches
         Expat is a stream-oriented XML 1.0 parser library, written in C. Expat was one of the first open source XML parsers and has been incorporated into many open source projects, including the Apache HTTP Server, Mozilla, Perl, Python and PHP.
         James Clark released version 1.0 in 1998 while serving as technical lead on the XML Working Group at the World Wide Web Consortium. Clark released two more versions, 1.1 and 1.2, before turning the project over to a group led by Clark Cooper, Fred Drake and Paul Prescod in 2000. The new group released version 1.95.0 in September 2000 and continues to release new versions to incorporate bug fixes and enhancements. Expat is hosted as a SourceForge project. Versions are available for most major operating systems.
         To use the Expat library, programs first register handler functions with Expat. When Expat parses an XML document, it calls the registered handlers as it finds relevant tokens in the input stream. These tokens and their associated handler calls are called events. Typically, programs register handler functions for XML element start or stop events and character events. Expat provides facilities for more sophisticated event handling such as XML Namespace declarations, processing instructions and DTD events.
         Expat's parsing events are similar to the events defined in the Simple API for XML (SAX), but Expat is not a SAX-compliant parser. Projects incorporating the Expat library often build SAX and DOM parsers on top of Expat.
         http://www.xml.com/pub/a/1999/09/expat/index.html
  • ExtremeBear/Plan . . . . 2 matches
         ["ExtremeBear"] Meeting20021029
          * IndexCard (CRC Card, Task Card, Story Card 등으로 이용)
         RefactoringMe ) 참고 ["CodeConvention"]
          * Interface : 대문자로 시작하고 앞에 I를 붙임
          StandUpMeeting
  • ExtremeProgrammingExplained . . . . 2 matches
         ExtremeProgramming 의 철학을 소개한 서적. 저자 KentBeck. TheThreeExtremos 중 한명. 얼마전에 2판이 나왔다.
         [책분류] [ExtremeProgramming] [ExtremeProgrammingInstalled] [ExtremeProgrammingExplained2/E]
  • FactorialFactors . . . . 2 matches
         [http://online-judge.uva.es/p/v8/884.html]
         === Input ===
         === Sample Input ===
  • FactorialFactors/이동현 . . . . 2 matches
          final int CASE_N = 1000000; //테스트할 케이스 수
          int fac[] = new int[CASE_N+1]; //인수저장배열
          ArrayList<Integer> prime = new ArrayList<Integer>();
          boolean isPrime(int num){
          for(int k=0;k<prime.size();k++){
          void printResult(){
          int total=0;
          for(int i=2;i<=CASE_N; i++)
          System.out.println(total);
          int sqrt = (int)Math.sqrt(CASE_N);
          for(int i=3;i<=CASE_N;i++){
          int num = i;
          for(int j=2; num!=1;){
          printResult();
          System.out.print(System.currentTimeMillis()-time);
          public static void main(String[] args) {
  • FromCopyAndPasteToDotNET . . . . 2 matches
          * [http://zeropage.org/~lsk8248/wiki/Seminar/FromCopyAndPasteToDotNET/FromCopyAndPasteToDotNET.doc 세미나 자료]
          * [http://zeropage.org/~lsk8248/wiki/Seminar/FromCopyAndPasteToDotNET/DLLExample.zip DLLExample]
          * [http://zeropage.org/~lsk8248/wiki/Seminar/FromCopyAndPasteToDotNET/UsingDLL.zip UsingDLL]
          * [http://zeropage.org/~lsk8248/wiki/Seminar/FromCopyAndPasteToDotNET/ATLCOMExample.zip ATLCOMExample]
          * [http://zeropage.org/~lsk8248/wiki/Seminar/FromCopyAndPasteToDotNET/UsingCOM.zip UsingCOM]
          * [http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/dataexchange/dynamicdataexchange/aboutdynamicdataexchange.asp About Dynamic Data Exchange]
          * [http://msdn.microsoft.com/workshop/components/activex/intro.asp Introduction to ActiveX Controls]
          * [http://msdn.microsoft.com/library/en-us/cossdk/htm/betaintr_6d5r.asp Introducing COM+]
          * [http://msdn.microsoft.com/library/en-us/cpguide/html/cpovrintroductiontonetframeworksdk.asp Overview of the .NET Framework]
          * 듣고 싶은데 아쉽군 --["neocoin"]
  • Googling . . . . 2 matches
         {{|Google, Inc (NASDAQ: GOOG), is a U.S. public corporation, initially established as a privately-held corporation in 1998, that designed and manages the internet Google search engine. Google's corporate headquarters is at the "Googleplex" in Mountain View, California, and employs over 4,000 workers.|}}
         Google, Inc 는 미국의 공공기업이다. 이 기업은 1998년에 개인적으로 설립된 회사이다. 이 회사는 구글 인터넷 검색엔진을 설계하고 운영한다. 구글은 Mountain View 에 Googleplex에 본사를 두고 있다. 그리고 4000명 이상의 사원이 있다.
         ||Upload:googleplex-mountain-view.jpg||
         || link || 주어진 URL의 링크를 포함한 모든 페이지를 보여줍니다 ||
         || allintitle || 페이지의 제목만을 이용해서 검색한다. 내용에서는 찾지 않는다. ||
         || allintext || 페이지의 본문을 이용해서 검색한다. ||
         || allinurl || URL 링크에서 존재하는 문장을 통해서 검색한다. ||
         || allinanchor || 링크된 글안에서 검색을 한다. ||
         검색엔진에서 {{{~cpp operating system concepts filetype:ppt}}} 를 쳐보자.
         [SearchEngine]
  • GotoStatementConsideredHarmful . . . . 2 matches
          SeeAlso : PPR:GotoConsideredTheBestProgrammingPracticeEverInvented PPR:GotoStillConsideredHarmful PPR:GotoConsideredHarmful
  • GuiTestingWithWxPython . . . . 2 matches
          expected = "testing"
          expected = ('testing1', 'testing2', 'testing3')
          def OnInit(self):
         if __name__=="__main__":
          unittest.main(argv=('','-v'))
          def __init__(self, parent=NULL, id=NewId(), title='test', pos=(400,400), size=(400,400)):
          wxFrame.__init__(self, parent, id, title, pos, size)
          self.button = wxButton(self, ID_BUTTON, "testing", pos=(100,100), size=(200,50))
          self.listBox.Append('testing1')
          self.listBox.Append('testing2')
          self.listBox.Append('testing3')
          for idx in range(self.listBox.Number()):
          retList.append(self.listBox.GetString(idx))
          def OnInit(self):
         if __name__=="__main__":
          App.MainLoop()
         ["GuiTesting"]
  • HanoiTowerTroublesAgain! . . . . 2 matches
         [http://online-judge.uva.es/p/v102/10276.html 원문보기]
         === About [HanoiTowerTroublesAgain!] ===
         [http://online-judge.uva.es/p/v102/p10276.jpg]
         === Input ===
         === Sample Input ===
          || 문보창 || C++ || 10분 || [HanoiTowerTroublesAgain!/문보창] ||
          || 황재선 || Java || 50분 || [HanoiTowerTroublesAgain!/황재선] ||
          || 하기웅 || C++ || 원랜 1시간, 문보창 XXX 때문에 말렸음ㅡㅡ; || [HanoiTowerTroublesAgain!/하기웅] ||
          || 이도현 || C++ || Closed Form 구하는 데(1시간 30분), 코딩 5분 || [HanoiTowerTroublesAgain!/이도현] ||
          || [조현태] || C++ || ? || [HanoiTowerTroublesAgain!/조현태] ||
  • HanoiTowerTroublesAgain!/황재선 . . . . 2 matches
          public int readNumber() {
          return new Scanner(System.in).nextInt();
          public boolean canBallPut(int[] prev, int peg, int ballNumber) {
          public int maxBall(int numOfPeg) {
          int[] prevNumber = new int[numOfPeg + 1];
          int ballNumber = 1;
          int oldBallNumber = 0;
          for(int peg = 1; peg <= numOfPeg; peg++) {
          if (ballNumber == Integer.MAX_VALUE) {
          public void printNumberOfBall(int numOfBall) {
          System.out.println(numOfBall);
          public static void main(String[] args) {
          int testCase = hanoi.readNumber();
          for(int i = 0; i < testCase; i++) {
          int numOfPeg = hanoi.readNumber();
          int numOfBall = hanoi.maxBall(numOfPeg);
          hanoi.printNumberOfBall(numOfBall);
         [HanoiTowerTroublesAgain!]
  • HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 2 matches
         '''* 데이터 은닉(Data Hiding)'''
         데이터 은닉이란 모듈이 그것이 갖는 기능들을 명세한 인터페이스(interface)를 통해서만 접근되고, 그 기능을 구현하는 방법은 다른 모듈로부터 은닉되도록 하는 것을 말한다. 캡슐화된 객체의 외부 인터페이스를 엄밀히 정의함으로써 독립적으로 작성된 모듈간의 상호 종속성을 극소화하여 캡슐화된 객체는 외부 인터페이스만을 통하여 접근될 수 있도록 한다면, 세부적인 구현 상세 사항에 대해서는 객체내에 은닉시킬 수 있다. 또한 캡슐화된 객체는 객체 구현내역을 변경, 혹은 향상시킬 때 이 객체를 사용하는 타 객체들을 변경하거나 다시 컴파일하지 않도록 할 수 있다. 또 모듈의 내부 구현 사항들이 외부의 접근으로부터 보호될 수 있음으로, 그 객체의 정당성을 보증할 수 있으며, 오류가 발생되었을 경우에 오류는 한 모듈내로 국지화될 수 있다.
         '''* 상속성(Inheritance) '''
         추상화란, 객체가 자신의 정보를 안에 감추고 있으면서 외부에 구체적인 것이 아닌 추상적인 내용만을 알려주는 것을 말한다. 때문에 추상화란 정보의 은닉(Information Hiding)이라고도 한다.
  • HardcoreCppStudy/두번째숙제/ConstructorAndDestructor/변준원 . . . . 2 matches
         IntArray (int sz = defSize)
         ia = new int[sz];
         ~IntArray()
  • Hartals . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10050.html 원문보기]
         === Input ===
         === Sample Input ===
  • HelpOnAdministration . . . . 2 matches
          * HelpOnInstallation - 설치하려면
          * HelpOnUpdating - 예전에 설치된 것을 새로운 버전으로 업데이트 하려면
          * HelpOnCvsInstallation - CVS로부터 다운받아서 설치하려면
         [[Navigation(HelpOnAdministration)]]
  • HerdingFrosh . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10135.html 원문보기]
         === About [HerdingFrosh] ===
         === Input ===
         === Sample Input ===
  • Hibernate . . . . 2 matches
         요새 한참 인기있는 Java O-R Mapping Tool
         조만간 [http://www.theserverside.com/resources/HibernateReview.jsp Hibernate In Action] 이란 책이 출간될 예정. Chapter 1 을 읽을 수 있다.
         [http://www.theserverside.com/resources/article.jsp?l=Hibernate Introduction to hibernate] 기사가 연재중이다.
  • HotterColder . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10084.html 원문보기]
         === Input ===
         === Sample Input ===
  • HowBigIsIt? . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10012.html 원문보기]
         [http://online-judge.uva.es/p/v100/p10012.gif]
         === Input ===
         === Sample Input ===
  • HowManyFibs? . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10183.html 원문보기]
         === Input ===
         === Sample Input ===
  • HowManyPiecesOfLand? . . . . 2 matches
         [http://online-judge.uva.es/p/v102/10213.html 원문보기]
         [http://online-judge.uva.es/p/v102/p10213.jpg]
         === Input ===
         === Sample Input ===
  • HowToStudyRefactoring . . . . 2 matches
         ["Refactoring"]을 혹은 동명의 책을 공부하는 법
         OOP를 하든 안하든 프로그래밍이란 업을 하는 사람이라면 이 책은 자신의 공력을 서너 단계 레벨업시켜 줄 수 있다. 자질구레한 기술을 익히는 것이 아니고 기감과 내공을 증강하는 것이다. 혹자는 DesignPatterns 이전에 ["Refactoring"]을 봐야 한다고도 한다. 이 말이 어느 정도 일리가 있는 것이, 효과적인 학습은 문제 의식이 선행되어야 하기 때문이다. DesignPatterns는 거시적 차원에서 해결안들을 모아놓은 것이다. ["Refactoring"]을 보고 나쁜 냄새(Bad Smell)를 맡을 수 있는 후각을 발달시켜야 한다. ["Refactoring"]의 목록을 모두 외우는 것은 큰 의미가 없다. 그것보다 냄새나는 코드를 느낄 수 있는 감수성을 키우는 것이 더 중요하다. 본인은 일주일에 한 가지씩 나쁜 냄새를 정해놓고 그 기간 동안에는 자신이 접하는 모든 코드에서 그 냄새만이라도 확실히 맡도록 집중하는 방법을 권한다. 일명 ["일취집중후각법"]. 패턴 개념을 만든 건축가 크리스토퍼 알렉산더나 GoF의 랄프 존슨은 좋은 디자인이란 나쁜 것이 없는 상태라고 한다. 무색 무미 무취의 無爲적 自然 코드가 되는 그날을 위해 오늘도 우리는 리팩토링이라는 有爲를 익힌다. -- 김창준, ''마이크로소프트웨어 2001년 11월호''
          * Minimize Comments : 코드의 가독성을 떨어뜨리지 않거나 혹은 오히려 올리면서 주석을 최소화하도록 노력한다. 이렇게 하면, 자동으로 리팩토링이 이뤄지는 경우가 많다.
          * Pair Refactoring : 함께 리팩토링한다. 혼자 하는 것 보다 훨씬 빨리 훨씬 더 많은 것을 배울 수 있다. 특히, 각자 작성했던 코드를 함께 리팩토링하고, 제삼자의 코드를 또 함께 리팩토링해 보라. 사람이 많다면 다른 페어가 리팩토링한 것과 서로 비교하고 토론해보라.
          * Separate The What From The How : "어떻게"와 "무엇을"을 분리하도록 하라. 어떤 리팩토링이 창발하는가?
  • ImmediateDecodability . . . . 2 matches
         [http://online-judge.uva.es/p/v6/644.html 원문보기] <- [DeadLink]
         == Input ==
         == Sample Input ==
  • IntentionRevealingMessage . . . . 2 matches
         == Intention Revealing Message ==
         어떻게 된건가? 의사소통이다. 한 줄의 메소드가 의사소통에 가장 중요하다.(?) 사용자의 입장에서는 그냥 highlight라는 메세지에 영역만 넣어서 보내면 되는 것이다. 사각형을 뒤집음으로써 highlight된다는 사실을 몰라도 되는 것이다. IntentionRevealingMessage는 컴퓨터를 위한다기보다는 사람을 위한 가장 극단적인 형태의 패턴이다. 의도와 구현을 분리하자는 것이다. 메세지의 이름을 그 메세지 내에서 어떻게 되는건가로 짓지 말고, 그 메세지가 무엇을 하는건가로 짓자.
          bool operator==(const Object& other)
          return this == *other;
  • IsBiggerSmarter? . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10131.html 원문보기]
         === Input ===
         === Sample Input ===
  • Java Study2003/첫번째과제/곽세환 . . . . 2 matches
         자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
         자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
         자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
         인터프리터(Interpreter) 방식이다:
         자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
          public static void main(String args[]) {
          System.out.println("Hello World!");
  • Java Study2003/첫번째과제/노수민 . . . . 2 matches
         자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
         자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
         자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
          * 인터프리터(Interpreter) 방식이다:
         자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
          * 자바 가상머신(Java Virtual Machine; Java VM):
          public static void main(String[] args) {
          System.out.println("Hello World!");
  • JavaStudy2002/상욱-2주차 . . . . 2 matches
          public static void main(String[] args) {
          int xRoach = 1 , yRoach = 1;
          int tempX = 0, tempY = 0;
          continue;
          for (int i = 0 ; i <= 11 ; i++){
          for (int j = 0 ; j <= 11 ; j++){
          for (int k = 1 ; k <= 10 ; k++){
          for (int l = 1 ; l <= 10 ; l++){
          public boolean boardState(int x , int y ) {
          public int randomNumber_1() {
          return rand.nextInt(10000);
          public int randomNumber_2() {
          return rand.nextInt(40000);
          public int moveUpandDown() {
          public int moveSide() {
          private int boardCount[][] = new int [10][10];
          for (int i = 0 ; i <= 9 ; i++){
          for (int j = 0 ; j <= 9 ; j++){
          public void checkStay(int x, int y) {
          for (int i = 0 ; i <= 9 ; i++){
  • JavaStudy2002/세연-2주차 . . . . 2 matches
          int m_nRow;
          int m_nCol;
          void set(int row, int col){
          int nMaxNum = 8;
          int row, col, dir;
          void setFirstPosition(int firstRow, int firstCol){
          dir = random.nextInt() % 8;
          int nMaxNum = 8;
          int [][] board = new int[nMaxNum+2][];
          void markPosition(int rowPositoin, int colPosition){
          void isTheGameFinished(){
          public static void main(String[] args){
  • JavaStudyInVacation . . . . 2 matches
          * ["Java"], ["Eclipse"], ["JUnit"], ["TestDrivenDevelopment"], ["TestFirstProgramming"]
          * ["JavaStudyInVacation/진행상황"]
          * ["JavaStudyInVacation/과제"]
  • JollyJumpers . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10038.html 원문보기]
         === Input ===
         === Sample Input ===
  • JollyJumpers/남훈 . . . . 2 matches
         def initTable(n):
          diffTable = initTable(n)
          for i in range(n-1):
         def parseInput():
          lines = []
          line = sys.stdin.readline()
          if line == '' or line[0] == '0':
          line = line.rstrip().split(' ')
          inted = []
          for atom in line:
          inted.append(int(atom))
          lines.append(inted[1:])
          return lines
          print 'Jolly'
          print 'Not jolly'
         def main():
          lines = parseInput()
          #print lines
          for line in lines:
          displayDecision(isJolly(line))
  • JollyJumpers/임인택 . . . . 2 matches
          private int array[];
          public void setArray(int[] arr) {
          public String testify() {
          int size = array.length;
          int count=0;
          for(int i=0; i<size-1; ++i) {
          int tmp = Math.abs(array[i]-array[i+1]);
          public static void main(String args[]) {
          int arr[] = new int[args.length];
          for(int i=0; i<arr.length; ++i) {
          arr[i] = Integer.parseInt(args[i]);
          System.out.println(jj.testify());
          int arr1[] = {1,2,3,4};
          int arr2[] = {1,2,3,4,5};
          int arr3[] = {1,1,2,3};
          int arr1[] = {1,2,3};
          int arr1[] = {1,2,3,4,5};
          int arr2[] = {1,4,2,3};
          int arr1[] = {1,4,2,3};
          int arr2[] = {1,2,3,4,5};
  • JollyJumpers/임인택3 . . . . 2 matches
         jollyInt() ->
         > Pid = spawn(jolly:jollyInt/0).
  • KnowledgeManagement . . . . 2 matches
          * Theoretical
          * I : Information
          * S : Sharing
  • LC-Display . . . . 2 matches
         [http://online-judge.uva.es/p/v7/706.html 원문보기]
         === Input ===
         === Sample Input ===
  • LightMoreLight . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10110.html 원문보기]
         === Input ===
         === Sample Input ===
  • LispLanguage . . . . 2 matches
          * For the beginners:
          * TutorialsPoint LISP: http://www.tutorialspoint.com/lisp/index.htm
          * [http://dept-info.labri.fr/~strandh/Teaching/Programmation-Symbolique/Common/David-Lamkins/contents.html Successful Lisp:How to Understand and Use Common Lisp] - 책인듯(some 에 대한 설명 있음)
         [http://www.peter-herth.de/ltk/ The Lisp Toolkit]
         [http://www.lispworks.com/products/clim.html Common Lisp Interface Manager]
         당연히 우분투에서 한거고 window에서 하는건 모른다
         (EXT:SAVEINITMEM)
         하면 세션이 lispinit.mem으로 저장됨
         다시 실행할때는 cmd에서 clisp -M lispinit.mem 하면 실행됨
          * 참고링크 : http://stackoverflow.com/questions/7424307/can-i-save-source-files-in-clisp
          * Common Lisp the Language, 2nd Edition by Guy L. Steele Jr. : 역시 책이라서 체계적으로 잘 나와 있다.
         [[include(틀:ProgrammingLanguage)]]
  • MFC/AddIn . . . . 2 matches
         #define _MFC_ _VISUAL_C++_
         = AddIn =
          멤버함수 자동완성, 멤버 함수 찾아가기, 편집 문맥 표시, 프로젝트 파일 열기, 다중 클립 보드, 강화된 Syntax highlighting, 프로젝트 파일 열기 등..
          Ctrl+1: .h, .cpp toggling
          * Restore Class View Addin
          * WinTab
          * IncrediBuild
  • MFC/ScalingMode . . . . 2 matches
         #define _MFC_
         = ScalableMappingMode =
         || WindowOrigin || 윈도우의 왼쪽 상당 논리 좌표. CDC::SetWindowOrg() 함수를 호출해서 설정 ||
         || WindowExtent || 논리 좌표 안에 지정되어 있는 윈도우의 크기. CDC::SetWindowExt()로 호출 ||
         || ViewportOrigin || 장치 좌표에 되어 있는 윈도우의 왼쪽 상단의 좌표. CDC::SetViewportOrg()로 호출 ||
         = LogicalCoordinate To DeviceCoordinate =
         {{{~cpp xDevice = (xLogical - xWindowOrg) * (xViewPortExt / xWindowExt) + xViewportOrg}}}
         {{{~cpp yDevice = (yLogical - yWindowOrg) * (yViewPortExt / yWindowExt) + yViewportOrg}}}
         좌표계가 MM_ISOTROPIC, MM_ANISOTROPIC 이외의 다른 것은 WindowExt, ViewPortExt 가 고정되어 변경이 불가능하다.
         CDC::SetWindowExt(), SetViewportExt()를 호출해도 아무런 변화가 생기지 않는다.
         = 확대 기능시의 CScrollView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) =
         CPainterDC* pDoc = GetDocument();
         pDoc->SetWindowExt(DocSize); // 윈도우의 범위를 설정한다.
         int xLogPixels = pDC->GetDeviceCaps(LOGPIXELSX); // 인자에 해당하는 장치 정보를 리턴한다. 인치당 픽셀의 개수를 리턴. 100단위
         int yLogPixels = pDC->GetDeviceCaps(LOGPIXELSY);
         int xExtent = DocSize.cx * m_Scale * xLogPixels / 100;
         int yExtent = DocSize.cy * m_Scale * yLogPixels / 100;
  • MFCStudy_2001/MMTimer . . . . 2 matches
          첫째는 WINMM.LIB를 추가시켜줘야 하고[[BR]]
          소스에 #include <mmsystem.h> 를 넣고[[BR]]
          Project(P) - Setting(S, ALT+F7)을 눌러 Link탭의 Object/Library modules:란에 winmm.lib를 적어줍니다.
         MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent);
         void CALLBACK TimeProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
         MMRESULT timeKillEvent(UINT uTimerID);
          * m_TimerID는 UINT형 입니다.
         void CALLBACK TimerProc(UINT uiID,UINT uiMsg,DWORD dwUser,DWORD dw1,DWORD dw2)
          CAlcaDlg *pDlg=(CAlcaDlg*)AfxGetMainWnd();
         CAlcaDlg *pDlg = (CAlcaDlg*)AfxGetMainWnd();
          * m_nTimerID는 UINT형 입니다. 성공할 경우에는 타이머의 번호가 넘어옵니다.
         void CALLBACK CMyDlg::timeproc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2){
          * CALLBACK 함수를 사용할때의 주의점. (in MSDN)[[BR]]
          - Applications should not call any system-defined functions from inside a callback function, except for PostMessage, timeGetSystemTime, timeGetTime, timeSetEvent, timeKillEvent, midiOutShortMsg, midiOutLongMsg, and OutputDebugString.[[BR]]
          - 어플리케이션은 콜백 함수 내부로부터 다음 함수를 제외하고는 시스템 정의 함수를 부를 수가 없다. : PostMessage, timeGetSystemTime, timeGetTime, timeSetEvent, timeKillEvent, midiOutShortMsg, midiOutLongMsg, and OutputDebugString.[[BR]]
          CALLBACK함수 내부에서 화면을 갱신할 때에는 Invalidte()함수나 user 메세지를 만들어서 날려주면 됩니다.
         void CALLBACK EXPORT CTmrprocView::TimerProc(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
          wsprintf((LPSTR) pThis->m_strOutput, "CTmrprocView::TimerProc() Called. Count = %ld", ++pThis->m_cCount);
          pThis->Invalidate(TRUE);
  • Marbles . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10090.html 원문보기]
         === Input ===
         === Sample Input ===
  • MineFinder . . . . 2 matches
          * 이름 : Mine Finder
          * 시스템 : 듀론 1G 256RAM WIN 2000
          * '눈' 해당 부분 - 지뢰찾기 프로그램으로부터 비트맵을 얻어 데이터로 변환하는 루틴 관련부. 현재 bitmap 1:1 matching 부분이 가장 부하가 많이 걸리는 부분으로 확인됨에 따라, 가장 개선해야 할 부분.
          * 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
          * Main Design, Algorithm 1차 완성. 어느정도 Refactoring의 추구.
          * Begineer mode 최고기록 1초, 평균 4-7초.
         [해성] 오오.. Artificial Intelligence.. -_- 근데 저 스펠링이 맞나..[[BR]]
         == Opening ==
          * 기본적으로는 Begineer Mode 만을 지원한다.
          * CppUnit - 이번 플밍때 윈도우 메세지 관련 처리에 대해서는 코드를 작성못했다. (이 부분에 대해서는 전통적인 Manual Test방법을 쓸 수 밖에. GUI Testing 관련 글을 더 읽어봐야 겠다. 아직 더 지식이 필요하다.) 단, 나중에 비트맵 분석부분 & Refactoring 시에 TFP 를 할 수 있게 되었다.
         지뢰찾기 프로그램의 윈도우클래스 이름이 '지뢰 찾기' 였다. 윈도우 OS 의 특징상 해당 윈도우 핸들간 메세지의 발생에 따라 해당 윈도우프로시저에서 처리가 된다. 해당 윈도우 핸들은 윈도우 클래스 이름을 아는 이상 FindWindow 함수를 이용해서 찾으면 될 것이다.
         beginner 에 해당하는 메뉴클릭시 발생하는 메세지는 WM_COMMAND 이고, ID는 wParam 으로 521이 날라간다. 즉, 해당 메뉴의 ID가 521 인 것이다. (우리는 컨트롤 아이디를 쓰지만 이는 resource.h 에서 알 수 있듯 전부 #define 매크로 정의이다.) 각각 찾아본 결과, 521,522,523 이였다.
          * [http://zeropage.org/~reset/zb/download.php?id=KDP_board_image&page=1&page_num=20&category=&sn=&ss=on&sc=on&keyword=&prev_no=&select_arrange=headnum&desc=&no=57&filenum=1 1차일부분코드] - 손과 눈에 해당하는 부분 코드를 위한 간단한 예제코드들 모음. 그리고 지뢰찾기 프로그램을 제어하는 부분들에 대해 Delegation 시도. (CMinerControler 클래스는 처음 '막 짠' 코드로부터 지뢰찾기 제어부분 함수들을 클래스화한것임)
         == User Story & Engineering Task ==
          * 기본적으로는 Begineer Mode 만을 지원한다.
          * 유의 : 이때는 Windows ME, Windows 2000 이상에서만 실행가능하다. (지뢰찾기 비트맵이 98과 다르다)
         || CMinerBitmapAnalyzer || 비트맵을 분석, 데이터화한다. ||
         || CMinerController || 지뢰찾기 프로그램에 대한 화면 캡쳐, 모드변환, 버튼 클릭 등의 제어를 한다 ||
         || CMineSweeper || 실질적인 두뇌에 해당되는 부분. CMinerController 와 CMinerBitampAnalyzer 를 멤버로 가지며, 이를 이용하여 게임상황분석, 지뢰찾기관련 판단 등을 한다 ||
         일종의 애니메이션을 하는 캐릭터와 같다. 타이머가 Key Frame 에 대한 이벤트를 주기적으로 걸어주고, 해당 Key Frame 에는 현재 상태에 대한 판단을 한뒤 동작을 한다. 여기서는 1초마다 MineSweeper 의 동작을 수행하게 된다.
  • MineSweeper . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10189.html 원문보기]
         === About MineSweeper ===
         === Input ===
         === Sample Input ===
          || [문보창] || C++/Python || 50분/40분 || [MineSweeper/문보창] ||
          || [이승한] || Flash/java?? || ? || [MineSweeper/이승한] ||
          || [황재선] || Java || ? || [MineSweeper/황재선] ||
          || [신재동] || C++ || 40분 || [MineSweeper/신재동] ||
          || [김회영] || C++ || ? || [MineSweeper/김회영] ||
          || [Leonardong] || [Python] || 3시간 3분 || [MineSweeper/Leonardong] ||
          || [곽세환] || C++ || 30분+ || [MineSweeper/곽세환] ||
          || [김민경] || Py || || [MineSweeper/김민경] ||
          || 김태훈 [zyint] || python || || [MineSweeper/zyint] ||
          || [허아영] || C++ || 1시간 || [MineSweeper/허아영] ||
          || 김상섭 || C++ || 많이..ㅡㅜ || [MineSweeper/김상섭] ||
  • MineSweeper/Leonardong . . . . 2 matches
         class MineGround:
          def __init__(self, aRowSize, aColSize, aInfo ):
          for row in range( aRowSize ):
          for row in range( aRowSize ):
          for col in range( aColSize ):
          self.ground[row][col] = Room( aInfo[row][col] )
          def __init__(self, aKind):
          self.kind = aKind
          return self.kind is aRoom.kind
          def mine(): # static method
          mine = staticmethod( mine )
         class MineSweeper:
          def __init__(self, aGround):
          def computeMineCount( self, aRow, aCol ):
          for d in self.direction:
          if Room.mine().equals(self.ground.getZone( aRow + d[0], aCol + d[1])):
          for row in range( self.ground.rowSize ):
          for col in range ( self.ground.colSize ):
          result[row] = result[row] + str( self.computeMineCount(row, col) )
          rowSize = input()
  • MineSweeper/신재동 . . . . 2 matches
         === MineSweeper/신재동 ===
         #include <iostream>
         #include <vector>
         using namespace std;
         const int MINE = -1;
         const int MOVE[3] = {-1, 0, 1};
         void initializeBoard(int maxRow, int maxCol, vector< vector<int> >& board)
          for(int i = 0; i < maxRow; i++)
         bool isInBoard(int row, int col, int moveRow, int moveCol, const vector< vector<int> >& board)
         void checkMine(int row, int col, vector< vector<int> >& board)
          for(int i = 0; i < 3; i++)
          for(int j = 0; j < 3; j++)
          isInBoard(row, col, i, j, board) ||
          (board[row + MOVE[i]][col + MOVE[j]] == MINE))
          continue;
         void setMinesOnBoard(vector< vector<int> >& board)
          for(int i = 0; i < board.size(); i++)
          cin.get(); // 이 한 줄이 삽질의 원흉!!
          for(int j = 0; j < board[0].size(); j++)
          char c = cin.get();
  • MobileJavaStudy/NineNine . . . . 2 matches
         public class NineNine extends MIDlet implements CommandListener{
          private String[] dan;
          private String str;
          public NineNine() {
          dan = new String[8];
          for(int i=2;i<10;i++)
          dan[i-2] = String.valueOf(i) + " dan";
          list = new List("NineNine",List.IMPLICIT,dan,null);
          public void calculNineNine() {
          int dan = list.getSelectedIndex() + 2;
          form = new Form(String.valueOf(dan)+" dan");
          for(int i=1;i<10;i++)
          str += String.valueOf(dan)+" * "+i+" = "+String.valueOf(dan*i)+"\n";
          calculNineNine();
         public class NineNine extends MIDlet implements CommandListener {
          List nineDanList;
          public NineNine() {
          nineDanList = new List("NineNine", List.IMPLICIT);
          for(int i = 2 ; i <= 9 ; i++) {
          nineDanList.append(String.valueOf(i) + " dan", null);
  • MoinMoin . . . . 2 matches
          * 모인모인 스크린샷 : [http://moinmoin.wikiwikiweb.de/MoinMoinScreenShots]
         === Links ===
          * [http://sourceforge.net/projects/moin/ SourceForge Project Info]
          * [http://moin.sourceforge.net/ Project Homepage]
          * [http://freshmeat.net/projects/moin FreshMeat Entry]
         "Moin" meaning "Good Morning", and "MoinMoin" being an emphasis, i.e. "A ''Very'' Good Morning". The name was obviously chosen for its WikiWikiNess.
         ''No! Originally "MoinMoin" does '''not''' mean "Good Morning". "Moin" just means "good" or "nice" and in northern Germany it is used at any daytime, so "Good day" seems more appropriate.'' --MarkoSchulz
         Mmmmh , seems that I can enrich so more info: "Moin" has the meaning of "Good Morning" but it is spoken under murmur like "mornin'" although the Syllable is too short alone, so it is spoken twice. If you shorten "Good Morning" with "morn'" it has the same effect with "morn'morn'". --Thomas Albl
         We use it all day in the south too. I always thought it just morphed from a morning greeting to an all-day one. -- J
  • MoinMoinDiscussion . . . . 2 matches
         Talk about the things on MoinMoinTodo and MoinMoinIdeas in this space...
         '''Q''': How do you inline an image stored locally? (e.g. ../wiki-moimoin/data/images/picture.gif)
         '''A''': See the {{{~cpp [[Icon]]}}} macro; besides that, fully qualified URLs to the wiki server work, too.
          * '''R''': The Icon macro worked well. I wanted to avoid the fully qualified URL because to access the Wiki in question requires password authentication. Including an image using the full URL caused my webserver (Apache 1.3.19) to reprompt for authentication whenever the page was viewed or re-edited. Perhaps a default {{{~cpp [[Image]]}}} macro could be added to the distribution (essentially identical to {{{~cpp [[Icon]]}}} ) which isn't relative to the data/img directory. (!) I've actually been thinking about trying to cook up my own "upload image" (or upload attachment) macro. I need to familiarize myself with the MoinMoin source first, but would others find this useful?
          * '''Note:''' Regarding the upload feature - pls note that the PikiePikie also implemented in Python already has this feature, see http://pikie.darktech.org/cgi/pikie?UploadImage ... so I guess you could borrow some code from there :) -- J
  • MoniWikiTutorial . . . . 2 matches
          * FindPage: 상단의 검색 폼 혹은 FindPage를 통해서 위키위키의 내용을 검색합니다.
          * TitleIndex: 위키위키의 모든 페이지 목록을 보여줍니다.
          * [[Icon(info)]] 페이지 변경 정보를 보여줍니다.
         || {{{''italic'' and '''bold''' and __underlined__}}} || ''italic'' and '''bold''' and __underlined__ ||
         || {{{MoinMoin:HelpContents}}} || MoinMoin:HelpContents (InterWiki-Link) ||
  • Monocycle . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10047.html 원문보기]
         [http://online-judge.uva.es/p/v100/p10047a.gif]
         [http://online-judge.uva.es/p/v100/p10047b.gif]
         === Input ===
         각 테스트 케이스에 대해 먼저 아래 출력 예에 나와있는 식으로 테스트 케이스 번호를 출력한다. 자전거가 도착지점에 갈 수 있으면 아래에 나와있는 형식에 맞게 초 단위로 그 지점에 가는 데 걸리는 최소 시간을 출력한다. 그렇지 않으면 "destination not reachable"이라고 출력한다.
         === Sample Input ===
         destination not reachable
         minimum time = 49 sec |}}
  • MoreEffectiveC++/C++이 어렵다? . . . . 2 matches
         작성자 : 류상민(["neocoin"], ZP 99) [[BR]]
          === Inheritance - Overriding - virtual ===
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-fe2478216366d160a621a81fa4e3999374008afa Item 24 Virtual 관련], [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-ce86e4dc6d00b898731fbc35453c2e984aee36b8 Item 32 미래 대비 프로그램에서 String문제]
          * Multiinheritance 에서 제기되는 문제
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-4e0fa0edba4b5f9951ea824805784fcc64d3b058 Item 24 다중 상속 관련]
          === RTTI (Real Time Type Information) ===
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-df8e5cb1fbb906f15052798c446df0ed08dfeb91 Item 24 RTTI 관련]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fTechniques3of3 Item 31]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fTechniques3of3#head-85091850a895b3c073a864be41ed402384d1868c RTTI를 이용해 구현 부분]
          === Polymorphism - Overloading ===
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-a8fe938a36d3be47de007ce24f1d367295cd7ea7 Item 34 name mangle 관련]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-9b5275859c0186f604a64a08f1bdef0b7e9e8e15 Item 34]
          * 생각해볼 name mangling - overloading
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-a8fe938a36d3be47de007ce24f1d367295cd7ea7 Item 34 name mangle 관련]
  • MySQL/PasswordFunctionInJava . . . . 2 matches
         // JDK 1.5 이상에서 동작. (String.format 함수 때문에)
          public static String toMySQLPassword(String aStr) {
          int nr = 1345345333;
          int add = 7;
          int nr2 = 0x12345671;
          int size = aStr.length();
          for(int i=0;i<size;i++)
          if(aStr.charAt(i) == ' ' || aStr.charAt(i) == '\t') continue; /* skipp space in password */
          int tmp = (aStr.charAt(i));
          int result1=nr & ((1 << 31) -1); /* Don't use sign bit (str2int) */
          int result2=nr2 & ((1 << 31) -1);
          String result = String.format("%08x%08x",new Object[]{new Integer(result1),new Integer(result2)});
          public static void main(String[] args) {
          System.out.println(MySqlUtil.toMySQLPassword("hahaha"));
          System.out.println(MySqlUtil.toMySQLPassword("testing"));
          System.out.println(MySqlUtil.toMySQLPassword("abcd1234"));
  • MythicalManMonth . . . . 2 matches
         This simple rule, consistently applied, would, within two years, double the
         See Also Moa:TheMythicalManMonth, Moa:ConceptualIntegrity , ["성당과시장"]
  • NIC . . . . 2 matches
         Network Interface Card 혹은 Adapter
         ["zennith"]가 사용하고 있는 NIC 는 현재 '''Realtek 8029(AS)''' 이다. 이 NIC 에 대해서 특별히 불만은 가지고 있지 않았지만, 얼마전에 경험하게 되었다. 바로, Linux 에서의 드라이버 지원 문제였는데, 동사의 8139(10/100 mega bit ethernet 카드로서, 대부분 리얼텍 NIC 를 쓴다고 한다면 이8139일 것이다.)는 매우 잘 지원되는 것으로 보였으나.. 단지 10m bit ethernet 인 내 8029 는 너무 오래전에 나온것인지 꽤, 고난과 역경을 겪게끔 하는 그런 카드였다. 그래서, 지금 ["zennith"] 가 알아보고 있는 카드가 두개 있다. 하나는 ACTTON 에서 나온 것과, 또 다른 하나는 그 이름도 유명한 NetGear 에서 나온 10/100 카드이다. 전자의 ACTTON 것은 나름대로 한 시대를 풍미했던 DEC 의 튤립이란 카드의 벌크 제품이라던데... 7000원이라는 가격이 매우 돋보이지만, 이것역시 벌크제품인지라 드라이버 지원문제가 꽤 걸릴거 같아서, 아무래도 NetGear 의 제품을 사게 될 것 같다.
         이런 페이지는 NIC가 아닌 NetrowkInterfaceCard 로 이름을 하는것이 좋와 --["상민"]
  • NetworkDatabaseManagementSystem . . . . 2 matches
         The network model is a database model conceived as flexible way of representing objects and their relationships. Its original inventor was Charles Bachman, and it was developed into a standard specification published in 1969 by the CODASYL Consortium. Where the hierarchical model structures data as a tree of records, with each record having one parent record and many children, the network model allows each record to have multiple parent and child records, forming a lattice structure.
         The chief argument in favour of the network model, in comparison to the hierarchic model, was that it allowed a more natural modeling of relationships between entities. Although the model was widely implemented and used, it failed to become dominant for two main reasons. Firstly, IBM chose to stick to the hierarchical model in their established products such as IMS and DL/I. Secondly, it was eventually displaced by the relational model, which offered a higher-level, more declarative interface. Until the early 1980s the performance benefits of the low-level navigational interfaces offered by hierarchical and network databases were persuasive for many large-scale applications, but as hardware became faster, the extra productivity and flexibility of relational systems won the day.
  • NiceMilk . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10117.html 원문보기]
         [http://online-judge.uva.es/p/v101/p10117.gif]
         === Input ===
         === Sample Input ===
  • NotToolsButConcepts . . . . 2 matches
         [임인택]이 위키 항해를 하던중 xper seminar wiki에서 다음과 같은 글을 보았다.
         > I wanna start learning some real programming language (I know now only
         > Visual Basic , but i don't find it interesting, sorry for the vb
         > programmers, but this is my opinion).
         > And I was reading some docs, which were talking about lots of programming
         > languages, I saw there Python, and took a look at some python sites. I
         > saw some snippets and read some docs and liked the language a lot. But I
         > don't know if this language is well-accepted in the market and if having
         As for the job market, Python isn't among the buzzwords that you'll find in
         job descriptions most of the time. But software development isn't that much
         about particular technologies, the important part is learning concepts. If
         you learn Python, you won't be able to avoid learning (at least):
         - Object Oriented Programming (OOP)
         - Procedural Programming
         There's a lot more concepts that you can learn while using Python, as you
         - Functional Programming
         - Dividing software into components
         > I am only 17 and I'm only making plans, so if you have any suggestions
         Learn concepts, not tools. At least in the long run, this will make you
         more attractive to employers who have a clue about what's important in the
  • OpenGL스터디 . . . . 2 matches
         skyLibrary_inclue
         '''Intro'''
         공부하는 도서는 openGL superbible 3판 번역서 + openGL Game programming 두권으로 하고 있습니다. 아마 openGL superbible은 이번달에 5판 원서가 해외에서 나오는 걸로 알고 있는데, 이걸 보시는 분은 참고해서 원서를 보는것도
         === 팝핑(popping)현상 ===
         attachment:popping1.png
         attachment:poping3.png
         '''블랜딩(blending)'''이란 화면상에 색상과 물체를 혼합하는 효과를 이야기한다. 이를 사용하는 곳은 주로 두 이미지가 겹쳐있는 효과를 내기위해서 사용한다. 예를 들어
         attachment:antialiasing.png
         === 뷰포트(viewport)와 클리핑(clipping) ===
          * 그렇다면 이 openGL은 구체적으로 어떤식으로 작용하는가? 윈도우를 예시로 들어보자. 윈도우 같은 경우 어떤 화면에 이미지를 출력하려면 '''GDI(graphic Device Interface)라는 그래픽 장치 인터페이스'''를 통해서 출력장치로 출력데이터를 보내 출력한다.
         attachment:pipeLine2.png
          * 그리고 이 데이터타입은 openGL에 naming convention(이름 규칙)에 따라 정해져있는데 직관적이라 은근히 외우기 쉽다. 아래의 표를 살펴보자.
         || GLint, GLsizei || 32비트 정수 || long || l ||
         || GLuint, GLenum, GLbitfield || 부호없는 32비트 정수 || unsigned long || ui ||
  • OperatingSystemClass/Exam2002_1 . . . . 2 matches
         1. mainframe computer 의 운영체제와 personal computer 의 운영체제와의 주요 차이점은 무엇인가?
         2) Caching 에서의 hit ratio 란?[[BR]]
         5. 프로세스들끼리의 통신 방법으로 Message Passing 방법과 Shared Memory 방법이 있다. 각각의 방식을 간단히 설명하고, 서로의 장단점을 기술하시오.
         6. short-term, medium-term, long-term Scheduling의 차이점 및 특성에 대해 간략히 설명하시오.
         7. 유한 용량 Message Passing 을 위한 send() 메소드와 receive() 메소들을 완성하시오. send() 메소드는 queue의 공간이 있을때까지 block 하며, 반대로 receive() 메소드는 avariable message가 있을때까지 block해야 한다.
          * This implements a blocking send
          // wait until there is room
          System.out.println ("Producer Blocked");
          catch (InterruptedException e) { }
          System.out.println("Producer UnBlocked");
          System.out.println("Full");
          * This implements a blocking receive
          // wait until something is there
          System.out.println("Consumer Blocked");
          catch (InterruptedException e) { }
          System.out.println("Consumer UnBlocked");
         private static final int SIZE = 3;
         private volatile int position;
         9. 동적으로 우선순위가 변화되는 preemptive priorty-scheduling algorithm 을 생각해 보자. 큰 값을 가진 우선순위 번호가 더 높은 우선순위를 가진다고 가정하자. 만약 프로세스가 초기값으로 우선순위값 0를 갖고, CPU를 기다릴 때(ready 상태)에는 우선순위 값 a를 갖고, running 상태에는 우선순위값 b 를 갖는다면,[[BR]]
  • OurMajorLangIsCAndCPlusPlus/print/조현태 . . . . 2 matches
         == OurMajorLangIsCAndCPlusPlus/print/조현태 ==
         #include <stdio.h>
         #include <stdarg.h>
         #include <math.h>
         void PrintNumber(int leftGab, int number, double lowNumber)
          int numberSize = 0;
          for (int tempNumber = number; tempNumber > 0; ++numberSize)
          int powNumber = (int)pow((int)10, numberSize);
          for (register int i = 0; i < leftGab - numberSize; ++i)
          for (register int i = 0; i < numberSize; ++i)
          int printNumber = (int)lowNumber;
          fputchar(printNumber + '0');
          lowNumber -= printNumber;
         void print(const char* outData, ...)
          for (register int readPoint = 0; 0 != outData[readPoint]; ++readPoint)
          if ('%' == outData[readPoint])
          ++readPoint;
          int spaceSize = 0;
          for (; '0' <= outData[readPoint] && '9' >= outData[readPoint]; ++readPoint)
          spaceSize = spaceSize * 10 + (outData[readPoint] - '0');
  • OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 2 matches
          == 함수 (Functions) - String Functions ==
         || int atoi(const char *str); || 문자열을 정수(integer)로 변환 ||
         || long int strtol(const char *str, char **endptr, int base); || 문자열을 정수(long integer)로 변환 ||
         || unsigned long int strtoul(const char *str, char **endptr, int base); || 문자열을 정수(unsigned long)로 변환 ||
         || int atexit(void (*func)(void)); || 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 ||
         || void exit(int status); || 정상적인 프로그램 종료를 발생시킨다 ||
         || int system(const char *string); || 전달인자로 받은 명령 실행 ||
         == 함수 (Functions) - Searching and Sorting Functions ==
         || void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); || 이진검색 수행 ||
         || void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)); || 퀵 소트 수행 ||
         || int abs(int x); || 정수형 절대값 리턴 ||
         || div_t div(int numer, int denom); || 전달인자의 numer를 denom으로 나눈 값과 나머지를 구조체형식으로 리턴 ||
         || long int labs(long int x); || long형 정수의 절대값을 리턴 ||
         || ldiv_t ldiv(long int numer, long int denom); || div()와 동일하고 변수 타입만 long int ||
         || int rand(void); || 0부터 RAND_MAX까지의 범위사이의 난수 리턴||
         || void srand(unsigned int seed); || rand()에 의해 사용되는 난수 생성기에 인자 공급 ||
         || int mblen(const char *str, size_t n); || 다중 바이트 문자의 길이 리턴 ||
         || int mbtowc(whcar_t *pwc, const char *str, size_t n); || 다중 바이트 문자를 wide 문자로 변환 ||
         || int wctomb(char *str, wchar_t wchar); || wide 문자를 다중 바이트 문자로 변환 ||
         #include <stdlib.h>
  • OurMajorLangIsCAndCPlusPlus/string.h . . . . 2 matches
         string.h - string과 관련된 라이브러리
         || void * memccpy(void * dest, const void * scr, int c, unsigned int count) || Copies characters from a buffer. ||
         || void * memmove(void * dest, const void * scr, size_t count) || Moves one buffer to another. ||
         || int memcmp(const void * buf1, const void * buf2, size_t count) || Compare characters in two buffers. ||
         || int memicmp(const void * buf1, const void * buf2, unsigned int count) || Compares characters in two buffers (case-insensitive). ||
         || void * memset(void * dest, int c, size_t count) || Sets buffers to a specified character. ||
         || void * memchr(const void * buf, int c, size_t count) || Finds characters in a buffer. ||
         || char * strcpy(char * strDestination , const char * strSource ) || Copy a string. ||
         || char * strncpy(char * strDestination, const char * strSource, size_t count) || Copy characters of one string to another ||
         || char * strcat(char * strDestination, const char * strSource) || Append a string. ||
         || char * strncat(char * strDestination, const char * strSource, size_t count) || Append characters of a string. ||
         || int strcmp(const char *stirng1, const char *string2) || Compare strings. ||
         || int strcmpi(const char *stirng1, const char *string2) || Compares two strings to determine if they are the same. The comparison is not case-sensitive. ||
         || int stricmp(const char *stirng1, const char *string2) || Perform a lowercase comparison of strings. ||
         || int strncmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings. ||
         || int strnicmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings without regard to case. ||
         || char * strset(char *string, int c) || Set characters of a string to a character. ||
         || char * strnset(char *stirng, int c, size_t count) || Initialize characters of a string to a given format. ||
         || size_t strlen(const char *string) || Get the length of a string. ||
         || int strcoll(const char * stirng1, const char * stirng2) || Compare strings using locale-specific information. ||
  • PNGFileFormat/FileStructure . . . . 2 matches
          * Interlace method : 이미지에 대한 비트오더.
          || Color Type || Allowed Bit Depths || Interpretation ||
          || 3 || 1, 2, 4, 8 || Each pixel is a palette index; a PLTE chunk must appear. ||
  • PairProgramming . . . . 2 matches
         http://pairprogramming.com/images/pairprogrammers.gif
         == Pair Programming Approach ==
         PairProgramming 을 적용해보는 방법, 스타일 등등
          * Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
          * Protocol Analysis, 지식의 전달 - Seminar:CognitivePsychology 참조. 다른 사람의 사고과정을 관찰하고, 또한 자신의 사고과정을 다른 사람으로 하여금 관찰할 수 있게 해준다. 이는 자신의 프로그래밍 과정중 잘못된 부분을 고치는데 도움을 준다.
         == Pair Programming 에 대한 오해? ==
          * Junior : Expert 간 격차에 따른 효율성의 문제 - [http://www.caucse.net/phpwiki/index.php?PairProgramming PairProgramming]
         PairProgramming 의 다른 적용 예로서 PairSynchronization 이 있다.
         == PairProgramming 경험기 ==
          * Pair 의 진행을 이끌어가는 것 - 프로그래밍의 흐름이라고 해야 할까. 디자인을 어느정도 선정도로 맞추고 어떠한 문제를 풀 것인가에 대한 약간의 선이 필요할 것 같다. 이 경우에는 초반 디자인이 허술했었다는 약점이 있었다. '전체적인 관점에서 무엇무엇을 하면 프로그램이 완성될 것이다' 라는 것. UserStory 만 생각하고 EnginneringTask 를 간과한 것이 큰 문제였다. (그때 EnginneringTask 에 대한 개념이 없었었다는. 어디서 함부로 주워만 지식. --; 사고를 하자 사고를. -_-)
          * ExtremeProgrammingPlanning 이라는 책을 보면 해결책을 구할 수 있을 것 같다. (Xp 책들의 장점이자 단점이라면 얇은 두께의 분책이려나.. --a)
          * 아직은 효율성이.. - 일종의 Learning Time 이라고 해야 할까? 대부분 실험에서 끝난다는 점. 퍽 하고 처음부터 효율성을 극대화 할 순 없을 것이다. 참고로 이때는 아날로그 시계 만드는데 거의 3시간이 걸렸다. Man-Hour 로 치면 6시간이 된다.
         TestFirstProgramming 과 PairProgramming 은 집중도에 관해서는 가장 훌륭한 선택인 것 같다. (단, Pair와의 담합행위가 이루어지면 곤란하겠다. -_-;)
         === bioinfomatix 프로젝트중 ===
         진행한 사람 : 강석천, bioinfomatix 에서 일하시는 분들[[BR]]
         학습목적이 아닌 실질적인 개발을 위한 PairProgramming 으로는 처음인듯 하다. 2주간 격일로 일을 했었는데, XP 스타일로 프로젝트를 진행하였다.
          * 보통 코딩을 주도하는쪽이 빨리 지치며 집중력도 떨어지게 된다. 특히 PairProgramming 의 경우는 상대편 Pair에 대한 배려상 해당 시간에 작업 이외의 다른 일을 거의 하지 않는다. (화장실도 자주 안간다;;)
          * On-Side Customer 와의 PairProgramming - 프로젝트 중간에 참여해서 걱정했었는데, 해당 일하시는 분과 직접 Pair를 하고 질문을 해 나가면서 전체 프로그램을 이해할 수 있었다. 특히 내가 ["BioInfomatics"] 에 대한 지식이 없었는데, 해당 도메인 전문가와의 Pair로서 서로 상호보완관계를 가질 수 있었다.
          * Junior 의 위치에서 바라본 학습 효과 - 이전에 상경이형이 채팅 프로그램 만드는 법을 직접 보여줬을때가 생각이 난다. (그때 '자. 15분동안 하나 만들어줄께~' 하면서 후다다닥 MFC로 서버/클라이언트 예제를 바로 보여주던 모습은 잊혀지지 않는다;) Junior 의 입장에서 Expert 행동 하나하나는 Check Point 이다. 좋은 습관과 프로그래밍 스타일, 디버깅하는 모습을 직접 눈으로 확인할 수 있었다.
         ProgrammingContest 에 있는 K-In-A-Row 문제를 푸는 일을 했다.
  • PairProgrammingForGroupStudy . . . . 2 matches
         PairProgramming이란 ExtremeProgramming이라고 하는 새로운 소프트웨어 개발 방법론의 한가지 기법으로, 두명이 한 컴퓨터를 이용해서 같이 프로그래밍을 하는 것을 말합니다.
         저는 여기서 PairProgramming의 교육적 효과와 이를 그룹 스터디나 프로젝트 팀 교육에 응용하는 방법을 간략히 서술하겠습니다.
         이 방식을 소프트웨어 개발 업체에서 적용한 것은 Apprenticeship in a Software Studio라는 문서에 잘 나와 있습니다. http://www.rolemodelsoft.com/papers/ApprenticeshipInASoftwareStudio.htm (꼭 읽어보기를 권합니다. 설사 프로그래밍과는 관련없는 사람일지라도)
         여기서는 단기간에 이런 PairProgramming을 통해서 팀 내에 지식이 확산되게 하거나, 그룹 스터디에 이용할 수 있는 방법을 보도록 하죠.
         이렇게 되면 E와 F는 전문가인 A와 B와 직접 PairProgramming을 하고 나머지 네명은 자기들끼리 PairProgramming을 하게 되죠. 처음 pairing에서 C와 G, D와 H는 태스크를 완수해지 못해도 괜찮습니다 -- 대신 문제 영역을 탐색하는 동안 어느 정도의 학습은 발생하거든요.
         이 상태에서는 A와 B는 ExpertRating이 0이고, E와 F는 1이 됩니다. 이 개념은 Erdos라는 수학자가 만든 것인데, Expert 자신은 0이 되고, 그 사람과 한번이라도 pairing을 했으면 1이 됩니다. 그리고, expert와 pairing한 사람과 pairing을 하면 2가 됩니다. expert는 사람들의 ExpertRating을 낮추는 식으로 짝짓기 스케쥴링을 맞춰갑니다. 물론 처음에는 C,D,G,H는 아무 점수도 없죠. 이럴 때는 "Infinite"이라고 합니다.
         이렇게 pairing을 할 수 있겠죠. 역시 아까와 동일한 태스크를 수행합니다. 대신 좀전 pairing에서 얻은 지식을 기반으로 좀 더 나은 프로그램을 새로 작성하는 겁니다. 각자 이전 경험이 다르므로(다른 사람과 짝짓기를 했으므로) 둘이 협력하면 서로 가르쳐 주고 배우면서 시너지 효과를 낼 수도 있습니다.
         여기서는 각각의 ExpertRating은, C=2, D=2, E=1, F=1, G=1, H=1이 되겠죠. (A,B는 시원source이므로 여전히 0)
         너무나 좋은 글을 읽은 것 같습니다. 선배님이 써주신 PairProgramming에 관한 글을 순식간에 읽었습니다 ^^ 이런 방법이 스터디의 방법으로 자리잡는다면 초보자의 실력향상에 엄청난 도움이 되겠군요
  • PairProgramming토론 . . . . 2 matches
         PairProgramming 자체에 대해 조금 설명을 드리자면, 우선 이건 Driver와 Observer로 역할 분담이 되는데 정해진 게 아니고, 계속 바뀝니다. 운전하는 사람이 있고, 옆에서 코치하는 사람이 있는 거죠. 실제로 타이핑을 하는 사람은 타이핑이란 작업에 몰두하느라 지력을 좀 빼앗깁니다. 대신 이걸 관찰하는 사람은 여유가 있으므로 이것 저것 객관적인 코치를 해줄 가능성이 높죠. 그런데, 예를 들어, Driver가 코딩을 하다가 Observer가 "그게 아냐 이렇게 하면 더 좋아"하면서 설명을 하는데 잘 이해를 못하겠다 싶으면 키보드를 밀어주며 "니가 해봐"라고 말합니다. 역할 바꾸기가 되는 거죠. 이게 아니더라도, 가능하면 두 사람이 지속적으로 역할 바꾸기를 하면 좋습니다. (ExtremeProgramming에선 타이머를 이용해서 정해진 시간이 되면 역할 바꾸기를 하는 예도 있습니다) 뭐 어찌되었건, 피곤하다 싶거나 지금 머리가 잘 안돌아간다 싶으면 옆 사람에게 키보드를 넘기면 되죠.
         그리고 전문가와 비숙련자가 pairing을 해도, 전문가한테도 도움이 많이 됩니다. 예를 들어 변수이름 같은 것은 전문가도 실수할 수 있죠. 이걸 지켜보던 비숙련자가, "어라.. 아까는 PrinterStatus라고 치더니 지금은 PrintersStatus라고 치시네요..."라고 하면, '아차!'하는 거죠. 또 비숙련자가 코드를 이해를 못해서 설명을 해주게 되면, 전문가 스스로도 많은 공부를 하게 되고, 설령 그 사람이 그 설명을 이해를 못해도, "아 이런 부분은 이해를 잘 못하는구나. 앞으로 이건 더 쉽게 설명해야겠군"하고 잘못을 스스로에게 구하면서, 또 학습이 발생하죠.
         PairProgramming 자체에 대해서는 http://www.pairprogramming.com 를 참조하시고, IEEE Software에 실렸던, 로리 윌리엄스 교수의 글을 읽어보세요 http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF. 다음은 UncleBob과 Rob Koss의 실제 PairProgramming을 기록한 대본입니다. http://www.objectmentor.com/publications/xpepisode.htm
         한편, 보통 숙련자/비숙련자 가 pairing 할때는 한쪽 방향으로 프로그래밍 스타일 등의 무게가 치우쳐지기 쉽다고 생각하는데요. 보통 비숙련자인 사람이 수동적인 입장을 취하는 경우가 많기 때문에.. 다른 한편, 숙련자인 사람이 마음의 벽을 넘지 못하는 우를 범할때에도 비숙련자인 사람이 '내가 저 사람보다 잘 모르니까...' 식으로 끌려가는 경우가 있을수 있다고 봅니다. (실제로 가끔 제가 '설명할 수 없는 부분은 혼란시켜라' 라는 말을 실천에 옮기는 경우가 종종 발생한다는.. -_-;;) -- 강석천
         겉으로 보기엔, 왕초보/왕도사의 짝은 상당히 비효율적일 것 같지요. PairProgramming을 한다고 해도, 왕도사가 키보드를 거의 독차지하고, 왕초보가 간간히 던지는 멍청한 질문은 둘(정확히는 왕도사)의 프로그래밍 속도를 늦출 것이고요. 또, 아무것도 못하고 멍청히 지켜봐야만 하는 왕초보 역시 답답할 겁니다. 괜히 질문했다가는 핀잔받기 일수이고. 둘 다 짜증나는 상황이죠.
         이런 상황에서는 SoloProgramming이 낫다는 말을 하고 싶을 겁니다. 왕초보는 왕초보대로 짜고, 왕도사는 또 자기 마음대로(full-speed로) 짜고. 하지만, 이건 기본적으로 잘못된 관점에서 오는 문제입니다. 제대로 된 PairProgramming은 전체 팀은 물론 각 개인에게도 모두 이득을 줍니다.
         조금 장기적인 면에서 그리고 팀의 수준에서 생각해 보세요. 문제많은 코드만 만들어내는 사람과, 남들이 이해하기 힘든 코드만 만들어내는 사람이 각자 나름의 코드를 만들어내는 팀의 전체 효율과, 항상 왕도사의 코치를 받는 왕초보와, 왕초보의 이해도에 맞추기 위해 노력하는 왕도사로 이루어진 팀(왕초보/왕도사 모두 "뭔가 학습"하는 것이 있게되죠)의 전체 효율. 어떨까요? 더군다나, 그 둘이 PairProgramming을 하면 할 수록 왕초보는 왕도사 수준에 근접합니다 -- 엄청나게 빠른 성장을 목격할 수 있죠. 굳이 초기 단계의 비용이 있다고 쳐도, 그건 일종의 투자로 봐야 할 겁니다. --김창준
         PairProgramming 을 위해 특별히 필요한 지식이 있는지 궁금합니다. (주로 자연스럽게 따라오는 것들이 XP 관련쪽 이야기여서.. XP에 대한 구체적인 지식이 필요한지 궁금합니다.)
         XP 방법 중에서 가장 손쉽게, 곧바로 적용할 수 있는 것 중 하나가 PairProgramming입니다. 물론 여타의 XP 방법들과 마찬가지로 최고의 효과를 위해서는 다른 실행법을 함께 수행해야 합니다만, 이것 하나만이라도 제대로 하면 가시적인 차이를 느낄 것입니다. 특별히 어떤 지식보다는 마음 자세와 태도가 더 중요합니다. --김창준
         Strengthening the Case for Pair-Programming(Laurie Williams, ...)만 읽어보고 쓰는 글입니다. 위에 있는 왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다. 문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요. 그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다. Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. 그러나 우리가 현재 하는 방식에 비해서 얼마나 효율이 있을까는 제고해봐야 할 것 같습니다. - 김수영
         Pair 할때의 장점으로 저는 일할때의 집중도에 있다고 보고 있습니다. (물론 생각의 공유와 버그의 수정, 시각의 차이 등도 있겠지만요.) 왕도사/왕초보 Pair 시의 문제점은 왕도사가 초보자가 coding 때에 이미 해야 할 일을 이미 알고 있는 경우 집중도가 떨어지게 된다는 점에 있습니다. Pair 의 기간이 길어지면서 초보쪽이 중고급으로 올라가는 동안 그 문제들이 해결이 될 것 같은데, 아쉬운 점은 Pair 를 긴 기간을 두고 프로그래밍을 한 적이 없다는 점입니다. (하나의 프로젝트를 끝내본 역사가 거의 없다는.)
         ''왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다.''
         이 세상에서 PairProgramming을 하면서 억지로 "왕도사 왕초보"짝을 맺으러 찾아다니는 사람은 그렇게 흔치 않습니다. 설령 그렇다고 해도 Team Learning, Building, Knowledge Propagation의 효과를 무시할 수 없습니다. 장기적이고 거시적인 안목이 필요합니다.
         ''문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요.''
         ''그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다.''
         제가 여러번 강조했다시피 넓게 보는 안목이 필요합니다. 제가 쓴 http://c2.com/cgi/wiki?RecordYourCommunicationInTheCode 나 http://c2.com/cgi/wiki?DialogueWhilePairProgramming 를 읽어보세요. 그리고 사실 정말 왕초보는 어떤 방법론, 어떤 프로젝트에도 팀에게 이득이 되지 않습니다. 하지만 이 왕초보를 쓰지 않으면 프로젝트가 망하는 (아주 희귀하고 괴로운) 상황에서 XP가 가장 효율적이 될 수 있다고 봅니다.
         ''Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. ''
         pair-anaysis와 pair-design의 중요성을 문서에서는 ''"Unanimously, pair-programmers agree that pair-analysis and pair-design is '''critical''' for their pair success."'' 이와 같이 말하고 있습니다. 또 다시 보시면 아시겠지만.. 제가 쓴 문장은 "물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요."입니다. 택도 없다는 표현은 당연히 제 생각이라는 것이 나타나 있다고 생각되는데....
         저는 PairProgramming의 희망을 왕도사와 왕도사가 같이 했을 때 정말 그 힘이 발휘될 것이라는 것에서 찾고 싶습니다. 형이 말하는 왕도사와 왕초보 그룹은 학교나 제자를 기르고 싶은 왕도사에게 해당하는 사항이 아닐까요? 실제 사회에서 왕도사와 왕초보 그룹이 얼마나 효용성이 있을까요?
         결국 제가 말하고 싶은 것은 PairProgramming은 왕도사와 왕도사 그룹이 할 수 있는 최상의 해법(제 생각입니다만)이라는 것입니다.. 모든 방법론이 모든 경우에 적합하지는 않은 것을 생각해본다면 PairProgramming이 왕도사와 왕초보 그룹이 아닌 왕도사와 왕도사 그룹에 가장 적합한 것이 아닐까 생각해봅니다.
  • PatternCatalog . . . . 2 matches
          * ["SingletonPattern"]
          * ["Gof/Singleton"]
          * ["ChainOfResponsibilityPattern"]
          * ["InterpreterPattern"]
          * ["Gof/ChainOfResponsibility"]
          * ["Gof/Interpreter"]
  • Plugin/Chrome/네이버사전 . . . . 2 matches
          * 크롬은 아시다시피 Plug-in을 설치할수 있다 extension program이라고도 하는것 같은데 뭐 쉽게 만들수 있는것 같다. 논문을 살펴보는데 사전기능을 쓰기위해 마우스를 올렸지만 실행이 되지 않았다.. 화난다=ㅂ= 그래서 살짝 살펴보니 .json확장자도 보이는것 같지만 문법도 간단하고 CSS와 HTML. DOM형식의 문서구조도 파악하고 있으니 어렵지 않을것 같았다. 그래서 간단히 네이버 링크를 긁어와 HTML element분석을 통해 Naver사전을 하는 Plug-in을 만들어볼까 한다.
         크롬의 개발자 API주소는 지금 사이트 이전을 하고있는데 맨앞에 code가 developer로 이전하는것 같았다. 여튼 index의 주소는 다음과 같다.
         http://code.google.com/chrome/extensions/index.html
         // Copyright (c) 2012 The Chromium Authors. All rights reserved.
         // found in the LICENSE file.
          "sort=relevance&" + // another good one is "interestingness-desc"
          <title>Getting Started Extension's Popup</title>
          min-width:357px;
          margin:5px;
          <!-- JavaScript and HTML must be in separate files for security. -->
          "description": "The first extension that I made.",
          * window.open함수를 이용하여 body를 '''더블''' 클릭하면 새로운 팝업창을 띄운다.
          * index.html
         function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar,
          window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height
         <body ondblclick = "na_open_window('win', 'popup.html', 50, 100, 100, 30, 0, 0, 0, 0, 0)">
          * 위의 na-open_window는 임의로 만든 함수긴한데 status_bar나 기타 스크롤이 가능하지 않은 popup을 만들고 있다. 0은 false니까.
          "name" : "BrowsingData API: Basics",
          "browsingData"
          * inline script를 cross script attack을 방지하기 위해 html과 contents를 분리 시킨다고 써있다. 이 규정에 따르면 inline으로 작성되어서 돌아가는 javascript는 모두 .js파일로 빼서 만들어야한다. {{{ <div OnClick="func()"> }}}와 같은 html 태그안의 inline 이벤트 attach도 안되기 때문에 document의 쿼리를 날리던가 element를 찾아서 document.addEventListener 함수를 통해 event를 받아 function이 연결되게 해야한다. 아 이거 힘드네. 라는 생각이 들었다.
  • PluginInfoMacro . . . . 2 matches
         [[PluginInfo(PluginInfo)]]
  • PolynomialCoefficients . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10105.html 원문보기]
         === Input ===
         === Sample Input ===
  • PowerOfCryptography . . . . 2 matches
         === Input ===
         === Sample Input ===
         === Hint ===
         [PowerOfCryptography/Hint]
  • PrimaryArithmetic . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10035.html 원문보기]
         === Input ===
         === Sample Input ===
          || Seminar:지원 || Python || 30분 || Seminar:PrimaryArithmetic/지원 ||
          || JuNe || Python || 10분 || Seminar:PrimaryArithmetic/JuNe ||
  • PrimeNumberPractice . . . . 2 matches
         #include <iostream>
         using namespace std;
         const int scope = 2000;
         void SetScope(int scope[], int length);
         void CalculatePrimeNumber(int scope[], int length);
         void PrintPrimeNumber(int scope[], int lengh);
         // this program print prime number in scope 1 to 2000
         int main(void) {
          int targetNumberScope[scope + 1];
          PrintPrimeNumber(targetNumberScope, scope);
         void SetScope(int scope[], int length) {
          for (int i = 0; i < length; i++)
         void CalculatePrimeNumber(int scope[], int length) {
          for (int masterIter = 2; masterIter < length; masterIter++) {
          for (int i = 2, secondIter = masterIter * i; secondIter < length; secondIter = masterIter * ++i) {
         void PrintPrimeNumber(int scope[], int length) {
          for (int i = 1; i < length; i++) {
          static final int SCOPE = 2000;
          private static void InitializeNumberPool() {
          for (int i = 0; i <= SCOPE; i++)
  • ProgrammingLanguageClass . . . . 2 matches
         [ProgrammingLanguageClass/2002]
         [ProgrammingLanguageClass/2006]
          * ''Programming Language Pragmatics'' by Michael L. Scott : 이제까지 나온 프로그래밍 언어론 서적 중 몇 손가락 안에 꼽히는 명저.
          * ''Programming Language Processors In Java : Compilers and Interpreters'' by David A. Watt & Deryck F. Brown
         그러므로, 이런 ProgrammingLanguageClass가 중요하다. 이 수업을 제하면 다른 패러다임의 다양한 언어를 접할 기회가 거의 전무하다. 자신의 모국어가 자바였다면, LISP와 Prolog, ICON, Smalltalk 등을 접하고 나서 몇 차원 넓어진 자신의 자바푸(Kungfu의 변화형)를 발견할 수 있을 것이며, 자바의 음양을 살피고 문제점을 우회하거나 수정하는 진정한 도구주의의 기쁨을 만끽할 수 있을 것이다. 한가지 언어의 노예가 되지 않는 길은 다양한 언어를 비교 판단, 현명하고 선택적인 사용을 할 능력을 기르는 법 외엔 없다. --김창준
         "Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them."
         -- C. H. Lindsey, History of Algol 68. ACM SIGPLAN Notices, 28(3):126, March 1993.
         개인적으로 학기중 기억에 남는 부분은 주로 레포트들에 의해 이루어졌다. Recursive Descending Parser 만들었던거랑 언어 평가서 (C++, Java, Visual Basic) 작성하는것. 수업시간때는 솔직히 너무 졸려서; 김성조 교수님이 불쌍하단 생각이 들 정도였다는 -_-; (SE쪽 시간당 PPT 진행량이 60장일때 PL이 3장이여서 극과 극을 달렸다는;) 위의 설명과 다르게, 수업시간때는 명령형 언어 페러다임의 언어들만 설명됨.
         see also SoftwareEngineeringClass
  • ProgrammingPartyAfterwords . . . . 2 matches
         2002년 5월 19일 서강대에서 있었던 ["프로그래밍파티"] 후기 (see also ProgrammingPartyPhotos)
         다음으로는 요구사항에 대한 해설이 있었다. 당시의 문제는 http://no-smok.net/seminar/moin.cgi/ElevatorSimulation 에 가면 볼 수 있다.
         3시 40분쯤. 1002는 시간이 너무 지체된다고 판단, '처음부터 일반화 알고리즘을 생각하시는 것 보다는, 사람수 한명일때라 생각하시고 작업하신뒤 사람수는 늘려보시는것이 더 편할겁니다' 라고 했다. 이는, 금요일, 토요일때 미리 엘리베이터 시뮬레이션을 만들때 느낀점이긴 했다. Moa 팀에서는 동의를 했고 직원 한명에 대한 여정부분을 Hard-Coding 해나갔다.
         멘터인 1002는 '저렇게 하면 나중에 main 함수 어떻게 만들까.. OO Style 이라면 main 루틴 부분이 좀 짧긴 하겠지만, C 라면 좀 힘들지 않을까' 라고 생각, 5시가 가까워지는 4시 20분쯤에 각 모듈 부분을 통합할것을 제안 했다. 통합 중간중 의견 조율을 하는 중간에 ZP#2 멘터인 김창준씨는 두 팀으로 나누어졌을 때 서로 엇갈려서도 Pair 를 바꿔보도록 제안, Moa 의 두 팀은 한명씩 서로 바꾸어보기도 하며 일을 진행해 나갔다.
          * NoSmok:StructureAndInterpretationOfComputerPrograms 에 나온 Event-Driven Simulation 방식의 회로 시뮬레이션 [http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_idx_3328 온라인텍스트]
          * NoSmok:TheArtOfComputerProgramming 에 나온 어셈블리어로 구현된 엘리베이터 시뮬레이션 (NoSmok:DonaldKnuth 가 직접 엘리베이터를 몇 시간 동안 타보고, 관찰하면서 만든 알고리즘이라고 함. 자기가 타고 다니는 엘리베이터를 분석, 고대로 시뮬레이션 해보는 것도 엄청난 공부가 될 것임)
          * Discrete-Event System Simulation : 이산 이벤트 시뮬레이션 쪽에 최고의 책으로 평가받는 베스트셀러. 어렵지도 않고, 매우 흥미로움. [http://165.194.100.2/cgi-bin/mcu240?LIBRCODE=ATSL&USERID=*&SYSDB=R&BIBNO=0000351634 도서관]에 있음
          * Seminar:ElevatorSimulation 문제, 일반적인 discrete event simulation 패턴 소개 등
  • ProgrammingPearls/Column5 . . . . 2 matches
         == A Small Matter of Programming ==
          * 발판을 마련하자.(Build scaffolding.)
          * 그냥 Binary Search의 슈도코드를 C문법으로 바꿔놓은 것이다.
          * 그러면서 버그 있는 Binary Search를 보여주고 있다.
          * 큰 프로그램에서는 툴에서 제공하는 디버깅을 쓰지만, 이렇게 작은 알고리즘 같은 것에서는 print문 같은걸 쓰는게 편하다고 한다.
         === The art of assertion ===
          * 또한 Binary Search의 가장 중요한 전제 조건인 sort되었는가? 체크해주는 함수를 앞에다 써준다. 이 경우에는 search를 한번만 해주면 n + lg n 이렇게 될것이다. 하지만 sort되었는가 체크하는 함수는 한번만 해주면 되므로, search를 한 몇천,몇만번 돌리면 결국 lg n 에 수렴할 것이다.
          * 참고서적 : Writing Solid Code
         === Timing ===
         === The Complete Program ===
         === Principles ===
          * Scaffolding
          * Coding : 하이레벨의 슈도코드로부터 시작하자.
          * Testing : 큰 시스템보다는 발판 내에서 테스트하는게 훨씬 쉽다.
          * Debugging : 발판이랑 고립된 프로그램이나, 임베디드된 곳에서는 하기가 힘들다. Column5에서 설명한다.
          * Timing
         ["ProgrammingPearls"]
  • ProjectPrometheus/CookBook . . . . 2 matches
         ProjectPrometheus 중 나눌만한 Tip 들이나 기타 코드 이디엄들 등등.
         Seminar:UsingIdle
         String find = "(http|https)+://([^ \t\n<>()"]+)" // 패턴 설정
         Pattern pattern = Pattern.compile( find ); // 패턴 컴파일
         regular expression 패턴을 정의하기 위해서 ["Komodo"] 를 이용할 수도 있다. 또는 Seminar:TddRegularExpression 을 시도해보는 것도 좋다. ["1002"] 는 Python Interpreter 를 이용, 표현식을 찾아냈다.
          PrintWriter out = httpServletResponse.getWriter();
          out.println("<HTML> " +
         Wiki:SandglassProgramming
          * 멀티 타이머 http://www.programming.de/cpp/timer.zip
          * 마이크로 에그 타이머 http://users.informatik.fh-hamburg.de/~rohde_i/eggtimer/mr-egg-z.zip
         Java 에서는 HttpURLConnection 을 이용한다. 관련 코드는 http://www.javafaq.nu/tips/servlets/index.shtml 를 참조.
         Connection.setRequestProperty("Content-Type", "text/plain");
         Python 에서의 string.urlencode 과 마찬가지로 GET,POST 로 넘기기 전 파라메터에 대해 URL Encoding 이 필요하다. URLEncoder 라는 클래스를 이용하면 된다.
         URLEncoder.encode (paramString, "UTF-8");
          request.setCharacterEncoding("KSC5601");
          String serviceName = (String) request.getParameter("service");
         getParameter 가 호출되기 전에 request의 인코딩이 세팅되어야 한다. 현재 Prometheus의 Controller의 경우 service 의 명을 보고 각각의 서비스에게 실행 권한을 넘기는데, 가장 처음에 request의 characterEncoding 을 세팅해야 한다. 차후 JSP/Servlet 컨테이너들의 업그레이드 되어야 할 내용으로 생각됨 자세한 내용은 http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=957572615 참고
         == Resin ==
         resin 에서 홈 디렉토리를 변경하거나 resin 이 실행될때 기본적으로 생기는 디렉토리들(example 등)이 있다.
         === Resin 에서 DB POOL Setting ===
  • ProjectSemiPhotoshop/SpikeSolution . . . . 2 matches
          BOOL InitDIB(BOOL bCreatePalette = TRUE);
          int GetBitCount();
          int GetHeight() {return m_Size.cy;}
          int GetWidth() {return m_Size.cx;}
          int GetRealWidth() {return WIDTHBYTES((GetWidth()*GetBitCount()));}
         LPSTR WINAPI FindDIBBits(LPSTR lpbi)
         DWORD WINAPI DIBWidth(LPSTR lpDIB)
          LPBITMAPINFOHEADER lpbmi; // pointer to a Win 3.0-style DIB
          LPBITMAPCOREHEADER lpbmc; // pointer to an other-style DIB
          /* point to the header (whether Win 3.0 and old) */
          lpbmi = (LPBITMAPINFOHEADER)lpDIB;
          /* return the DIB width if it is a Win 3.0 DIB */
          if (IS_WIN30_DIB(lpDIB))
          else /* it is an other-style DIB, so return its width */
         DWORD WINAPI DIBHeight(LPSTR lpDIB)
          LPBITMAPINFOHEADER lpbmi; // pointer to a Win 3.0-style DIB
          LPBITMAPCOREHEADER lpbmc; // pointer to an other-style DIB
          /* point to the header (whether old or Win 3.0 */
          lpbmi = (LPBITMAPINFOHEADER)lpDIB;
          /* return the DIB height if it is a Win 3.0 DIB */
  • ProjectSemiPhotoshop/기록 . . . . 2 matches
          |||||| 알카노이드 PairProgramming ||
          * 10/24 pm1:00~pm4:00 VC예제 작성 , GDI, BMP, Key Input 예제 작성
          * Sampling 구현
          * 1차 integration - histogram, sampling
          * 2차 integragion - 추가기능 + 새로운 라이브러리(하지만 추가기능에 대한 대응 미흡으로 철수)
          * 흑백에 대한 명암 처리 - Null, Negative, Gamma Correction, Contrast Stretched Compression, Posterizing, Clipping, Iso-intensity Contouring Range-hilighting
          * 영역 설정, Blurring, Mask, Sharpening, Edge Detection Embossing, Median Filtering 구현
          *Solarize using a Threshold, Parabola, First Parabola, Second Parabola 구현
          * Contrast Stretching, Histogram Equalisation, 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용
          * 3차 Integration : 11월 29일에 작성한 기능들 하나로 합침.
  • ProjectZephyrus/Thread . . . . 2 matches
          * ''Database Connection Pool 을 사용하던 하지 않던, DB 자원을 얻어오는 부분을 하나의 end point에서 처리하세요. 처음부터 이를 고려하지 않을 경우, '''*.java''' 에서 Database Connection을 생성하고, 사용하는 코드를 머지않아 보게 될겁니다. 이는 정말 최악입니다. pool을 쓰다가 쓰지 않게 될 경우는?다시 pool을 써야 할 경우는? 더 좋은 방법은 interface를 잘 정의해서 사용하고, 실제 DB 작업을 하는 클래스는 Factory 를 통해 생성하는게 좋습니다. 어떤 방식으로 DB를 다루던 간에 위에서 보기엔 항상 같아야 하죠. --이선우 [[BR]]
          * 제가 저번학기에 작업했던 메신져가 있습니다. 이번 프로젝트를 하면서 참고할 수 있는 부분을 참고하세요. 저번 학기에 정보처리 실습이란 과목에서 프로젝트로 했던 것입니다. UP 로 Process 를 진행했었고, 높은(?) 점수를 위해서 많은 문서를 남기긴 했는데.. 부족한 면이 많군요 ㅡ.ㅡ;; http://www.inazsoft.net/projectworktool.html 에서 다운로드 받을 수 있습니다. - 구근
          * 제가 JDBC 할때 삽질했던거 다른 사람들은 삽질하지 않도록 하기 위해서 남긴 문서가 있어여.. 조금이나마 삽질 방지하는데 도움이 되면 좋겠네여..^^: - 상협[http://www.caucse.net/cgi-bin/moin/moin.cgi/_c0_da_b9_d9_c7_c1_b7_ce_c1_a7_c6_ae_2f_b9_e6_c8_ad_ba_ae_c6_c0_b8_de_bd_c5_c0_fa_2fJDBC JDBC 관련 삽질 방지용 문서]
         가장 이상적인 상태는 예전 창준선배님이 세미나에서 이야기 했었던, '이러 이러한 라이브러리는 여기 있지 않을까 해서 봤더니 바로 그 자리에 있더라.' 하는 상태입니다. 그러면 최악은? '이러 이러한 라이브러리가 필요한데? 음.. 이쁘게 잘 만들어놓기는 귀찮고 에라 다음에 정리하지 뭐' 그리고는 해당 method들을 copy & paste. '''공통 모듈'''을 한곳에서 다루도록 하세요. 공통 모듈은 꽤 많습니다. logging, configuration, resource managing ,..
         아 한가지 더 생각나는게 있군요. 자바로 프로젝트를 하니 적습니다. 절대 작성하는 라이브러리나 코드의 중간에서 Exception을 잡아서 삼켜버리지 마세요. Exception은 추후 debugging에 절대적인 정보를 담고 있습니다. 중간에 try ~ catch 로 잡아버리고, 어떠한 형태로도 알려주지 않는것은 상당히 위험합니다. 시간이 나면 이와 관련해서 더 적도록 하지요. --이선우
          static synchronized public SocketManager getInstance() {
          if (instance == null) {
          instance = new SocketManager();
          return instance;
          public static SocketManager getInstance() {
          if (instance == null) {
          if (instance == null) {
          instance = new SocketManager();
          return instance;
         ''' ''System.out.println()'' 이 머지않아 재앙을 가져올 것이니.. --삽질 계시록 2장 :)'''
  • REFACTORING . . . . 2 matches
         ISBN:0201485672 , [http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN89-87939-60-X 리팩토링]
         http://www.refactoring.com/catalog/index.html - Refactoring 에 대해 계속 정리되고 있다.
         == Refactoring 이란 무엇인가? ==
          * 기존의 "디자인 후 코딩' 법칙과 반대된다. (TestFirstProgramming 에서 UnitTest - ["Refactoring"] 이 맞물려 돌아간다)
          * Refactoring 을 하기 위해서는 UnitTest code가 필수적이다. 일단 처음 Refactoring에 대한 간단한 원리를 이해하고 싶다면 UnitTest 코드 없이 해도 좋지만, UnitTest code를 작성함으로서 Refactoring 에 대한 효과를 높일 수 있다. (Refactoring 중 본래의 외부기능을 건드리는 실수를 막을 수 있다.)
         == Refactoring 을 함으로써 얻는 이득 ==
         == Refactoring은 언제 하는가? ==
         특별히 때를 둘 필요는 없다. 틈나는 대로. Don Robert 의 The Rule of Three 원칙을 적용해도 좋을 것 같다.
          * 다시 또 뭔가 비슷한 일을 한다. - Refactoring을 할 때이다. Refactoring 하라.
         Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
         그리고 다음과 같은경우 Refactoring을 함으로써 이득을 얻을 수 있다.
          * Bad Smell 이 날때. - ["Refactoring/BadSmellsInCode"]
         == Refactoring 공부하기 ==
         Refactoring 책을 읽는 사람들을 위해. Preface 의 'Who Should Read This Book?' 을 보면 책을 읽는 방법이 소개 된다.
          * Refactoring이 무엇인지 알고 싶다면 Chapter 1의 예제를 읽어나간다.
          * 왜 Refactoring을 해야 하는지 알고 싶다면 Chapter 1,2를 읽어라.
          * 어떤 부분을 Refactoring 해야 하는지 찾기 원한다면 Chapter 3를 읽어라.
          * 실제로 Refactoring을 하기 원한다면 Chapter 1,2,3,4를 정독하고 RefactoringCatalog 를 대강 훑어본다. RefactoringCatalog는 일종의 reference로 참고하면 된다. Guest Chapter (저자 이외의 다른 사람들이 참여한 부분)도 읽어본다. (특히 Chapter 15)
         그리고 Refactoring 을 이해하는데 ExtremeProgramming 을 이해하면 도움이 될 것이다.
         == Refactoring 관련 토론 ==
  • RandomWalk/황재선 . . . . 2 matches
         #include <iostream>
         #include <ctime>
         #include <iomanip>
         using namespace std;
         const int rowMax = 40;
         const int colMax = 20;
         int board[rowMax][colMax];
         int row, col, ibug, jbug, count;
         void init();
         void input();
         bool existZero(int aBoard[rowMax][colMax]);
         void printResult();
         int main()
          init();
          input();
          printResult();
         void init()
          for (int i = 0; i < rowMax; i++)
          for (int j =0; j < colMax; j++)
         void input()
  • Refactoring/BigRefactorings . . . . 2 matches
         = Chapter 12 Big Refactorings =
         == Tease Apart Inheritance ==
          * You have an inheritance hierarchy that is doing two jobs at once.[[BR]]''Create two hierarchies and use delegation to invoke one from the other.''
         http://zeropage.org/~reset/zb/data/TeaseApartInheritance.gif
          * You have code written in a procedural style.[[BR]]''Turn the date records into objects, break up the behavior, and move the behavior to the objects.''
         == Separate Domain from Presentation ==
          * You have GUI classes that contain domain logic.[[BR]]''Separate the domain logic into separate domain classes.''
         http://zeropage.org/~reset/zb/data/SeparateDomainFromPresentation.gif
          * You have a class that is doing too much work, at least in part through many conditional statements.[[BR]]''Create a hierarchy of classes in which each subclass represents a special case.''
         ["Refactoring"]
  • ReplaceTempWithQuery . . . . 2 matches
         그러한 우려는 ' '''단지 그럴지도 모른다.''' ' 라는 가정일 뿐이다. 누구도 실제로 '''프로파일링'''(profiling)해보기 전까지는 알 수 없다. 실제로 문제가 되는지 아닌지는.
         이러한 방법을 사용하면서 부가적으로 얻을 수 있는 장점이 하나 더 있다. 실제로 도움이 될지 안될지 모르는 최적화를 하는데 쏟는 시간을 절약할 수 있다. 임시변수 사용뿐 아니라 이러한 미세한 부분의 조정은, 해놓고 보면 별로 위대해보이지 않는 일을, 할때는 알지 못하고 결국 시간은 낭비한게 된다. 돌이켜보면 나의 이러한 노력이 제대로 효과가 있었는지도 모른다. '''왜?''' 프로파일링 해보지 않았으니까. 단순히 ''시스템을 더 빨리 돌릴 수 '''있을지도''' 모른다''는 우려에서 작성한 것이었으니까. [http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork DoTheSimplestThingThatCouldPossiblyWork]
         I do not know what I may appear to the world, but to myself I seem to
         have been only a boy playing on the seashore, and diverting myself in
         now and then finding a smoother pebble or a prettier shell than
         ordinary. Whilst the great ocean of truth lay all undiscovered before me.
         ["Refactoring"]
  • ReverseAndAdd . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10018.html 원문보기]
         일단 어떤 수를 받아서 그 수를 뒤집은 다음 뒤집어진 수를 원래의 수에 더하는 과정을 뒤집어서 더하기라고 부르자. 그 합이 회문(palindrome, 앞뒤 어느 쪽에서 읽어도 같은 말이 되는 어구. 예:eye, madam, 소주만병만주소)이 아니면 회문이 될 때까지 이 과정을 반복한다.
         === Input ===
         === Sample Input ===
  • RoboCode . . . . 2 matches
          * [http://robocode.alphaworks.ibm.com/docs/robocode/index.html RoboCode API(English)]
         ||[TheJavaMan/로보코드]|| 휘동 ||
         ||[RoboCode/random], [RoboCode/sevenp], [로보코드/베이비] , [RoboCode/msm], [RoboCode/siegetank],[RoboCode/ing] || 2005년 데블스캠프 ||
         [TheJavaMan/로보코드]와 [JavaStudy2004/로보코드]를 여기로 합치면 좋지 않을까요?--[Leonardong]
  • RubyLanguage/Expression . . . . 2 matches
         || ! ~ + - || 단항연산자 (역논리, bit NOT, unary plus, unary minus) ||
         || defined || 심벌이 정의되었는지 검사 ||
         || begin end || 블록 표현식 ||
          def +(other)
          return self * other
          * defined? 연산자: 매개변수가 정의된 경우 그에 대한 설명을 문자열로 반환하고, 정의되지 않은 경우 nil을 반환
         defined? 1
         defined? dummy
         defined? printf
         defined? $_
         defined? a = 1
         if song.artist == "Gillespie" then
         elsif song.artist == "Parker" then
          * 실행되는 문장의 줄이 분리되어 있으면 then 생략 가능
          * then은 콜론(:)으로 대체 가능
         print if a == 10
         kind = case year
          when 1850..1889 then "Blues"
          when 1890..1909 then "Ragtime"
          when 1910..1929 then "New Orleans Jazz"
  • STL/참고사이트 . . . . 2 matches
         C++ Programming HOW-TO 에서 발췌
         Main STL sites:
         [http://dmoz.org/Computers/Programming/Languages/C++/Class_Libraries/STL C++ STL site ODP for STL] 와 [http://dir.lycos.com/Computers/Programming/Languages/C%2B%2B/Class_Libraries/STL 미러]
         The Code Project, C++/STL/MFC 에 대한 소개 http://www.codeproject.com/cpp/stlintroduction.asp
         C++ Standard Template Library, another great tutorial, by Mark Sebern http://www.msoe.edu/eecs/cese/resources/stl/index.htm
         Technical University Vienna by Johannes Weidl http://dnaugler.cs.semo.edu/tutorials/stl mirror http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
         iterator에 대한 매우 좋은 설명 http://www.cs.trinity.edu/~joldham/1321/lectures/iterators/
         Intro to STL SGI http://www.sgi.com/tech/stl/stl_introduction.html
         Joseph Y. Laurino's STL page. http://weber.u.washington.edu/~bytewave/bytewave_stl.html
  • Self-describingSequence . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10049.html 원문보기]
         === About [Self-describingSequence] ===
         [http://online-judge.uva.es/p/v100/10049img2.gif]
         === Input ===
         === Sample Input ===
          || 문보창 || C++ || 2시간 || [Self-describingSequence/문보창] ||
          || 황재선 || Java || 2시간 || [Self-describingSequence/황재선] ||
          || [1002] || Python || 1시간 40분 || [Self-describingSequence/1002] ||
          || [shon] || matlab || 1차 : 1시간 10분, 2차 : 3시간 || [Self-describingSequence/shon] ||
          || [조현태] || C++ || ? || [Self-describingSequence/조현태] ||
  • SeparationOfConcerns . . . . 2 matches
         Information Hiding 을 의미. DavidParnas 가 처음 제시.
         See Also Xper:InformationHiding
  • Server&Client/상욱 . . . . 2 matches
          public static void main(String[] args) {
          System.err.println("실행할 수 없습니다.");
          ioe.printStackTrace();
          System.out.println("서버에서 접속을 기다립니다.");
          System.out.println("접속되었습니다.");
          System.out.println(connect.getInetAddress());
          System.out.println("종료되었습니다.");
          System.out.println("예외가 발생하였습니다.");
          e.printStackTrace();
          public static void main(String[] args) throws Exception {
          String a = "165.194.17.86";
         ["JavaStudyInVacation/진행상황"]
  • ServiceOrientedProgramming . . . . 2 matches
         Adrian Tang 교수의 UbiquitousComputing 관련 강연에서 잠깐 언급되어서 웹을 뒤져봤는데 자료가 꽤 있는것 같다. UbiquitousComputing 과 SemanticWeb 등등과 맞물려 있는 프로그래밍 패러다임인것 같다. 개념정리를 해서 이곳에 정리를 해볼 예정 - [임인택]
          * [http://www.openwings.org/download/specs/ServiceOrientedIntroduction.pdf Introduction to service oriented programming]
  • ShellSort . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10152.html 원문보기]
         여틀 왕(King Yertle)은 그의 거북이 왕관을 재배치해서 가장 계급이 높은 귀족과 가장 가까운 측근들을 더 위쪽으로 올리고 싶어한다. 쌓여있는 거북이들의 순서를 바꾸는 방법은 거북이 한 마리가 원래 자기 위치에서 빠져 나와서 맨 위로 올라가서 자리를 잡는 방법 밖에 없다.
         === Input ===
         === Sample Input ===
         Elizabeth Windsor
         Elizabeth Windsor
  • SilentASSERT . . . . 2 matches
         - Compare String
         - Compare No Case String
         - Insert Test Title
         - Insert Code Line Number
         C++ 개발자, 특히 Window 프로그래밍을 할 때에는 ASSERT를 잘써야 합니다.
  • Slurpys . . . . 2 matches
         [http://online-judge.uva.es/p/v3/384.html 원문보기]
         === Input ===
         === Sample Input ===
          || JuNe || Python || 1시간 || Seminar:Slurpys/JuNe ||
  • Slurpys/황재선 . . . . 2 matches
          def __init__(self):
          index = 0
          for ch in aStr[1:]:
          index = aStr.find(ch,1)
          if aStr[index] == 'G':
          elif self.isSlump(aStr[index:]):
          slump = self.findSlumpStartIndex(aStr)
          def findSlumpStartIndex(self, aStr):
          if aStr.find('CD') != -1:
          return aStr.find('CD') + 1
          elif aStr.find('CE') != -1:
          return aStr.find('CE') + 1
         def main():
          size = input()
          else: print 'input size again'
          for num in range(size):
          string = raw_input()
          if 1 <= len(string) <= 60:
          else: print 'input string again'
          if slurpy.isSlurpy(string):
  • SmallTalk/강좌FromHitel/강의2 . . . . 2 matches
          Dolphin Smalltalk를 사용할 것이므로, 자료실에서 Dolphin Smalltalk를 내
          원래 Dolphin Smalltalk는 상용과 공개용 Smalltalk 환경을 같이 배포하고
          있습니다. Dolphin Smalltalk 1.1판은 공개용이며, 2.1판은 상용입니다. 현
          원래 Object Arts에서 제공하는 배포판의 파일 이름은 Dolphin981Setup.Exe
          이지만, 자료실의 파일명 길이 제한 때문에 위의 실행 파일을 다시 WinZip으
          로 압축하여 올린 것입니다. 그러므로 Dolphin Smalltalk를 설치하기 위해서
          1. 자료실에서 Dolphin Smalltalk와 Dolphin Education Center를 찾
          2. 내리받은 파일은 zip 압축파일이므로 WinZip 등과 같이 긴 파일
          5. 설치를 마무리하면 Dolphin Smalltalk의 바로 가기를 시작 메뉴
          든지 Dolphin Smalltalk를 제어판의 "프로그램 추가/삭제"를 통해서 제거할
          Dolphin Smalltalk를 시작하기 위해서는 "시작 → 프로그램 → Dolphin
          Smalltalk 98"을 가리킨 다음 안에 들어있는 "Dolphin Smalltalk 98" 아이콘
          처음 Dolphin Smalltalk를 설치하여 실행할 때에 화면에 경고 상자가 나타납
          니다. 대강의 내용은, 지금 사용하고 있는 Dolphin Smalltalk는 아직 등록
          Workspace'라는 이름을 가진 창입니다. 이 창에는 아마 "Welcome to Dolphin
          "First evaluated by Smalltalk in October 1972, and by Dolphin in
          February 1995. With a bit of luck the answer will be 7."
          내려진 명령이라고 합니다. Object Arts사는 1995년 2월에 자사의 Dolphin
          ☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
          Class allClasses asSortedCollection. ☞ "Inspector 창 열림"
  • SnakeBite/창섭 . . . . 2 matches
          * 뱀을 설계할 때 Linked List 로 해야 하는 것 같아 그걸 짜는데... 1학년 공부를 소홀히 해서 애를 먹었습니다.--;;
         DeleteMe) CRgn과 CRect에 있는 PtInRegion과 PtInRect함수로 영역 검사를 해보는 편이 편할듯 by 최봉환[[BR]]
  • Spring/탐험스터디/2011 . . . . 2 matches
         [[pagelist(^Spring)]]
          * [Spring Framework 3]를 탐험해보자!
          * [Spring]의 핵심 가치와 원리에 대한 이해
          * Spring Framework 3 다루는 다른 교재 가능
          * 과제: SpringSource Tool Suite에서 Spring MVC Template 프로젝트 생성
          DB의 4가지 method : Insert, Select, Update, Delete
          1.3 Resttemplate : spring에서 RESTful에 접근하기 위한 template. spring에서 데이터를 받아오는 방법.
          1.1. 전략 패턴 : 전략(알고리즘)의 분리를 한다는 의미. 언어에 따라 패턴을 적용하는 방법이 조금씩 다를 수도 있다. 책에서는 interface를 사용해서 전략을 분리하였는데, 이것은 자바에 어울리는 전략의 분리라고 한다.
          1.2. Runtime Injection : 다형성을 만들기 위해서 사용한 방법. 개인적으로 코딩할 때 다형성의 사용이 좀 부족하다고 느꼈는데, Runtime시에 오브젝트간의 관계를 맺게 하지 않고 그냥 클래스에 맞춘 코딩을 했기 때문인 것 같다. 앞으로 코딩을 하는데 머릿속에 넣어두고 자주 써 보는 것이 좋을 것이라 생각된다.
          1.4. Connection c = DriverManager.getConnection(...); 문장에서 에러가 나는데 문자열의 localhost/springbook 부분을 자신이 사용할 테이블의 이름으로 바꾸어 주어야 한다. localhost/test로 바꿔준다. 이후의 문자열 두 개는 각각 자신의 MySQL 계정 이름(기본값 root), MySQL 비밀번호를 적어주면 된다.
          2.1. 우선 책에서 외부 라이브러리를 사용하고 있는데, STS에는 필요한 라이브러리가 들어있지 않은 것 같다. 이쪽 페이지(http://www.tutorials4u.net/spring-tutorial/spring_install.html)를 보고 라이브러리를 받아야 한다. 받아서 압축을 풀고 spring-framework-3.0.5.RELEASE/dist 폴더에 있는 jar 파일들을 프로젝트에 포함시켜주면 AnnotationContext, AnnotationConfigApplicationContext, @Configuration, @Bean 등을 사용할 수 있게 된다.
          2.1. 스프링의 ConfigurationContext 내부의 Bean에서 Context를 생성해서 DI를 하려고 했을 때 오류 발생 : Context 내부에서 Context를 생성하는 코드를 사용했기 때문에 생성이 재귀적으로 이루어져서 무한 반복된다. 그리고 디버그 시 main 이전에 에러가 일어났는데, 그것은 스프링의 Context는 시작 전에 Bean들을 생성하기 때문이다. main에 진입하기 이전의 스프링 초기화 단계에서 오류가 일어났다는 얘기.
          1. Spring MVC Template Project 생성하여 실행해보려다 실패.
          1. Spring Project를 생성하고 실행하는데 Tomcat 설치가 필요하여 플러그인 설치함.
          1. Spring Project를 생성하고 실행하는데 포트가 이미 사용중이라 되지 않음.
         spring-framework-3.0.5.RELEASE/dist 폴더에 있는 jar 파일들을 프로젝트에 포함시켰는데,
         책에 jar 파일 목록에 있던 것 중 org.springframework.~~ 가 아닌 것들이 빠져있어서 그런가 아래와 같은 오류가 나는..
         Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
          at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
          at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:213)
  • StacksOfFlapjacks . . . . 2 matches
         === Input ===
         === Sample Input ===
  • StandardWidgetToolkit . . . . 2 matches
         [http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/main.html SWT 프로젝트 페이지]
         The most succinct description of the Standard Widget Toolkit component is this:
          The SWT component is designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented.
          --''[http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/main.html SWT 프로젝트 페이지]'' 에서
          * [http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html SWT 2.1 문서] - Code Snippets 가 많아서, 따라하기 용이하다.
          1. SWT를 다운로드 받는다. [http://www.eclipse.org/downloads/index.php Eclipse downlaod]에서 받을수 있다. Upload:swt-2.1-win32.zip
          public static void main(String[] args) {
          * 실행을 시키기 위해서, 실행되는 위치에 swt-win32-2133.dll (Windows 경우)가 있어야 한다.
  • Star . . . . 2 matches
         [[https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=13&page=show_problem&problem=1100 원문보기]]
         [[http://online-judge.uva.es/p/v101/p10159.gif]] ~~[[DeadLink]]~~
         === Input ===
         === Sample Input ===
  • Steps . . . . 2 matches
         [http://online-judge.uva.es/p/v8/846.html 원문보기]
         === Input ===
         === Sample Input ===
  • StructureAndInterpretationOfComputerPrograms . . . . 2 matches
         see NoSmok:StructureAndInterpretationOfComputerPrograms , Moa:StructureAndInterpretationOfComputerPrograms
  • SuperMarket/재니 . . . . 2 matches
         #include <iostream>
         #include <cstring>
         using namespace std;
          int input;
          int mainMenuInput(){
          cin >> input;
          if (input < 1 || input > 5){
          input = 0;
          return input;
          int money, cash, wantProduct, wantNum;
          int price;
          int num;
          for (int i = 0 ; i < 3 ; i++)
          void mainMenuView() {
          cin >> cash;
          for (int i = 0 ; i < 3 ; i++)
          cin >> wantProduct;
          cin >> wantNum;
          for (int i = 0 ; i < 3 ; i++)
          cin >> wantProduct;
  • TCP/IP . . . . 2 matches
         개발자를 위해서 제공되는 API(Application Programming Interface)의 가장 대표적인 형태가 TCP/IP 이다.
          * http://cs.ecs.baylor.edu/~donahoo/practical/CSockets/textcode.html <Socket Programming for C>
          * http://kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc1 <using make file>
          * http://kldp.org/KoreanDoc/VI-miniRef-KLDP <using vi editer>
          * http://kldp.org/KoreanDoc/Thread_Programming-KLDP <using thread>
          * http://www.paradise.caltech.edu/slide <sliding window project>
          * Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP 프로그래밍 팁 모음
          * Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
  • TdddArticle . . . . 2 matches
         류군 이야기로는 Oracle 의 경우 설치하고 딱 실행하는데만 기본 메모리 200메가 잡아먹는다고 한다. -_-; 로컬 테스트를 위해 HypersonicSql를 쓸만도 하군.; (In-memory DB 식으로 지원가능. 인스톨 할것도 없이 그냥 콘솔에서 배치화일 하나 실행만 하면 됨. 근데, JDBC 를 완벽히 지원하진 않는 것도 같아서, 약간 애매. (ResultSet 의 first(), last(), isLast() 등의 메소드들이 실행이 안됨)
          그래서 오라클이 크다는 말씀이 아니실까? 나도 찍어봐야겠네 --NeoCoin
         Xper:XperSeminar 를 보니 일단 셋팅이 되고 익숙해지면 TDD 리듬이 덜 흐트러지는 방법 같았다. (재우씨랑 응주씨가 원래 잘하시고 게다가 연습도 많이 하셔서이겠지만;) password 추가되고 테스트 돌리는 리듬이 좋아보인다. 단, 테스트 돌아가는 속도가 역시 Real DB 이면서 [Hibernate] 까지 같이 돌아가서 약간 느려보이는데, 이건 해보고 결정 좀 해야겠군.
         reference 쪽은 최근의 테스트와 DB 관련 최신기술 & 문서들은 다 나온 듯 하다. 익숙해지면 꽤 유용할 듯 하다. (hibernate 는 꽤 많이 쓰이는 듯 하다. Intellij 이건 Eclipse 건 플러그인들이 다 있는걸 보면. XDoclet 에서도 지원)
         간만에 여유가 생겨서 한번 따라해보게 되었는데, [Hibernate] 가 생각보다 복잡한 녀석이라는 것을 알게 되었다. (내가 O-R Mapping Tool 에 대한 경험이 없기 때문에 더더욱) 한번에 습득하기에 쉬운 녀석은 아니였군.;
  • TeachYourselfProgrammingInTenYears . . . . 2 matches
         == Teach Yourself Programming in Ten Years ==
         어느 책방에 발길을 옮겨도,「7일간으로 배우는 Java(Teach Yourself Java in 7 Days)」라고 하는 방법책을 보기 시작하고, 그 곁에는 Visual Basic 나 Windows 나 인터넷등에 대해서, 똑같이 몇일이나 수시간에 배울 수 있으면(자) 파는 책이, 무한의 바리에이션으로 나란해지고 있다.Amazon.com 그리고 이하의 조건으로검색해 보았는데,
         프로그램을 쓰는 것.학습하는 최고의 방법은,실천에 의한 학습이다.보다 기술적으로 표현한다면, 「특정 영역에 있어 개인이 최대한의 퍼포먼스를 발휘하는 것은, 장기에 걸치는 경험이 있으면 자동적으로 실현된다고 하는 것이 아니고, 매우 경험을 쌓은 사람이어도, 향상하자고 하는 진지한 노력이 있기 때문에, 퍼포먼스는 늘어날 수 있다」(p. 366) 것이며, 「가장 효과적인 학습에 필요한 것은, 그 특정의 개인에게 있어 적당히 어렵고, 유익한 피드백이 있어, 게다가 반복하거나 잘못을 정정하거나 할 기회가 있는, 명확한 작업이다」(p. 20-21)의다(역주3).Cambridge University Press 로부터 나와 있는 J. Lave 의「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(역주4)라고 하는 책은, 이 관점에 대한 흥미로운 참고 문헌이다.
         만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
         적어도 반다스의 프로그램 언어를 배우는 것.그 중의 하나는 클래스 추상을 서포트하는 것(예를 들면 Java 나 C++), 하나는 함수 추상을 서포트하는 것(예를 들면 Lisp 나 ML), 하나는 구문 추상을 서포트하는 것(예를 들면 Lisp), 하나는 선언적 기술을 서포트하는 것(예를 들면 Prolog 나 C++ 템플릿), 하나는 coroutine 를 서포트하는 것(Icon 나 Scheme), 그리고 하나는 병렬처리를 서포트하는 것(예를 들면 Sisal)인 것.
         Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.
         Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
         execute single instruction 1 nsec = (1/1, 000,000,000) sec
          * 역주 5 - ASCII BOOKS 로부터 「학카즈 대사전」(후쿠사키 타카히로역)로서 국역이 나와 있다.덧붙여 본문에 인용되고 있는 ESR 의 문장이 어느 문장으로부터의 인용인가는 몰랐다.본문에서는 ESR 는 The New Hacker's Dictionary 의 저자로서 이름을 들 수 있지만, 현재의 Jargon File 에는 해당 문장은 없었다.
          * 역주 6 - 말할 필요도 없이,Jamie Zawinski 이다.
  • TellVsAsk . . . . 2 matches
         Alec Sharp, in the recent book Smalltalk by Example [SHARP], points up a very valuable lesson in few words:
         Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
          ''then 에서 than 이 되어야 하는 것이 아닐까요? 제가 원문을 못봐서 함부로 고치기는 힘들군요.''
          ''맞는 지적인데. 원문도 then 이군. 내가 해석을 than 으로 읽고 실수했네. Thanks.~''
         That is, you should endeavor to tell objects what you want them to do; do not ask them questions about their state,
         make a decision, and then tell them what to do.
         The problem is that, as the caller, you should not be making decisions based on the state of the called object
         that result in you then changing the state of the object. The logic you are implementing is probably the called object's
         responsibility, not yours. For you to make decisions outside the object violates its encapsulation.
         Sure, you may say, that's obvious. I'd never write code like that. Still, it's very easy to get lulled into
         examining some referenced
         object and then calling different methods based on the results. But that may not be the best way to go about doing it. Tell the object
         what you want. Let it figure out how to do it. Think declaratively instead of procedurally!
         exam) 아마 Refactoring 책에도 나올것이지만.
         It is easier to stay out of this trap if you start by designing classes based on their responsibilities,
         you can then progress naturally to specifying commands that the class may execute, as opposed to queries
         that inform you as to the state of the object.
  • TestSuiteExamples . . . . 2 matches
         if __name__=='__main__':
          unittest.main(argv=('','-v'))
          return unittest.defaultTestLoader.loadTestsFromNames( ('ThePackage.test_file1','ThePackage.subpack.test_file2'))
         if __name__=='__main__':
          suite.addTestSuite(LoginTest.class);
  • TheJavaMan/숫자야구 . . . . 2 matches
         public class BBGameFrame extends Frame implements WindowListener{
          public BBGameFrame(String aStr){
          addWindowListener(this);
          public static void main(String[] args) {
          TextField input = new TextField();
          lp.add(input, "West");
          public void windowClosing(WindowEvent e) {
          public void windowOpened(WindowEvent e) { }
          public void windowIconified(WindowEvent e) { }
          public void windowDeiconified(WindowEvent e) { }
          public void windowClosed(WindowEvent e) { }
          public void windowActivated(WindowEvent e) { }
          public void windowDeactivated(WindowEvent e) { }
          * To change the template for this generated file go to
          * Window - Preferences - Java - Code Generation - Code and Comments
          * To change the template for this generated type comment go to
          * Window - Preferences - Java - Code Generation - Code and Comments
          public static String correct_answer;
          int temp[] = new int[3];
          for ( int i = 0 ; i < 3 ; i++)
  • TheKnightsOfTheRoundTable/김상섭 . . . . 2 matches
         #include <iostream>
         #include <math.h>
         using namespace std;
          cout << "The radius of the round table is: 0.000" << endl;
          cout << "The radius of the round table is: " << temp << endl;
         int main()
          cout.setf(ios::showpoint);
          while(cin >> a >> b >> c)
  • TheKnightsOfTheRoundTable/하기웅 . . . . 2 matches
         #include <iostream>
         #include <cmath>
         using namespace std;
          cout << "The radius of the round table is: 0.000"<<endl;
          cout << "The radius of the round table is: " << 1.0*sqrt(halfSum*(halfSum-a)*(halfSum-b)*(halfSum-c))/halfSum << endl;
         int main()
          cout.setf(ios::showpoint);
          while(cin>>a>>b>>c)
  • TheLargestSmallestBox/문보창 . . . . 2 matches
         // 10215 - TheLagestSmallestBox
         #include <iostream>
         using namespace std;
         #include <cmath>
         #include <cstdio>
         //#include <fstream>
         //fstream fin("in.txt");
         #define MIN(x,y) (((x) > (y)) ? (y) : (x))
         inline double func(double x)
          double minValue = MIN(L,W) / 2.0;
          printf("%.3f %.3f %.3f\n", max, 0.0, minValue);
         int main()
          while (cin >> L >> W)
         [TheLargestSmallestBox] [문보창]
  • TheOthers . . . . 2 matches
          PL 마지막 팀 프로젝트 "The Others"팀의 프로젝트 페이지
          * 유덕윤 - C using Win32 API or MFC
          * MFC(또는 Win32 API)로 DB와 GUI 코딩하기
         -- TheOthers
          |__ UIProtoType - UI ProtoType 관련 문서 & Binary
  • TheTrip/Leonardong . . . . 2 matches
          for each in aList:
          for each in expensesBiggerThanMean:
         class TheTripTestCase(unittest.TestCase):
         if __name__ == '__main__':
          unittest.main()
         [TheTrip], [AOI]
  • TheTrip/문보창 . . . . 2 matches
         // no10137 - The Trip
         #include <iostream>
         #include <cmath>
         #include <cstdlib>
         using namespace std;
         const int MAX = 100;
         int exchangeMoney(const int * cost, const int n);
         void showExchange(const int * ex, const int count);
         int main() // cent단위로 계산
          int n; // 학생수
          int exchangeCost[MAX]; // 교환값
          int i, c;
          int count = 0;
          while (cin >> n)
          cin.get();
          int costs[1000]; // 각 학생들의 지출 비용
          while (cin.peek() != 'n')
          if (cin.peek() == '.')
          cin.get();
          cin.get(money[c++]);
  • ThinkRon . . . . 2 matches
         aka {{{~cpp WhatTheyWouldDoInMyShoes}}}
         여기서 Ron은 Think Big에서처럼 부사의 역할을 하며, "RonJeffries처럼"을 뜻한다.
         저는 이미 RonJeffries를 어느 정도 내재화(internalize)하고 있는 것은 아닌가 생각이 듭니다. 사실 RonJeffries나 KentBeck의 언변은 "누구나 생각할 수 있는 것"들이 많습니다. 상식적이죠. 하지만 그 말이 그들의 입에서 나온다는 점이 차이를 만들어 냅니다. 혹은, 그들과 평범한 프로그래머의 차이는 알기만 하는 것과 아는 걸 실행에 옮기는 것의 차이가 아닐까 합니다. KentBeck이 "''I'm not a great programmer; I'm just a good programmer with great habits.''"이라고 말한 것처럼 말이죠 -- 사실 훌륭한 습관을 갖는다는 것처럼 어려운 게 없죠. 저는 의식적으로 ThinkRon을 하면서, 일단 제가 가진 지식을 실제로 "써먹을 수" 있게 되었고, 동시에 아주 새로운 시각을 얻게 되었습니다.
         전문가 비전문가 PairProgramming을 하다가 문제에 직면했습니까? 스스로에게 물어보십시오. 만약 KentBeck이나 WardCunningham, RonJeffries 같은 사람이 이 자리에 나 대신 있었다면 이 문제에 어떻게 대응했을런지. 그리고 거기서 얻은 해답을 꼭 실행에 옮겨 보세요. 자신은 물론 상대방도 놀라게 될 것입니다. 해답은 늘 안에 있습니다.
         Let me tell a brief story about how that came about. Our president, at the time was Bob Doherty. Doherty came from General Electric via Yale, and had been one of the bright young men who were taken under the wing of the famous engineer Stiglitz. Every Saturday, Stiglitz would hold a session with these talented young men whom General Electric had recruited and who were trying to learn more advanced engineering theory and problem-solving techniques. Typically, Bob Doherty would sometimes get really stuck while working on a problem. On those occasions, he would walk down the hall, knock on Stiglitz’s door, talk to him — and by golly, after a few minutes or maybe a quarter of an hour, the problem would be solved.
         One morning Doherty, on his way to Stiglitz’s office, said to himself, "Now what do we really talk about? What’s the nature of our conversation?" And his next thought was, "Well Stiglitz never says anything; he just asks me questions. And I don’t know the answer to the problem or I wouldn’t be down there; and yet after fifteen minutes I know the answer. So instead of continuing to Stiglitz’s office, he went to the nearest men’s room and sat down for a while and asked himself, "What questions would Stiglitz ask me about this?" And lo and behold, after ten minutes he had the answer to the problem and went down to Stiglitz’s office and proudly announced that he knew how to solve it.
  • TowerOfCubes . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10051.html 원문보기]
         === Input ===
         === Sample Input ===
  • ToyProblems . . . . 2 matches
         ToyProblems를 풀게 하되 다음 방법을 이용한다. Seminar:TheParadigmsOfProgramming [http://www.jdl.ac.cn/turing/pdf/p455-floyd.pdf (pdf)]을 학습하게 하는 것이다.
          *준비물: 기본적으로 이클립스와 Python 2.3b1( + idlefork), NetMeeting 설치
         ToyProblems를 풀면서 접하게 될 패러다임들(아마도): CSP, Generators, Coroutines, Various Forms of Recursion, Functional Programming, OOP, Constraint Programming, State Machine, Event Driven Programming, Metaclass Programming, Code Generation, Data Driven Programming, AOP, Generic Programming, Higher Order Programming, Lazy Evaluation, Declarative Programming, ...
          * PairProgramming
          - 창준 - Higher Order Programming과 로우레벨에서의 설명(예컨대 단순한 함수 포인터로 설명하는 것)의 차이는 미묘하고, 또 크다. 동사(달리다)를 명사(달림)의 품 안에 넣는 것이다. 이 사고에서 엄청난 차이가 생길 수 있다.
          - 창준 - 교육의 3단계 언급 Romance(시, Disorder)-Discipline(예, Order)-Creativity(악, Order+Disorder를 넘는 무언가) , 새로운 것을 배울때는 기존 사고를 벗어나 새로운 것만을 생각하는 배우는 자세가 필요하다. ( 예-최배달 유도를 배우는 과정에서 유도의 규칙만을 지키며 싸우는 모습), discipline에서 creativity로 넘어가는 것이 중요하다.
         Higer order programming에서 중요한 것은 동사를 명사화해준다는 것인데, Command Pattern도 이와 비슷한 것 같습니다.
          * CTMCP http://www.info.ucl.ac.be/~pvr/
          * The Art and Craft of Problem Solving
  • UML서적관련추천 . . . . 2 matches
         출처 : ObjectProgramming 수업 게시판
         수업시간에 나갈 때의 어찌 하다보니, 주된 스타일은 'All it together' 그리고 그 이후의 단계별 접근으로 진행이 되었습니다. 해당 단계들에 대해서 처음에는 전체적인 부분을 한꺼번에 진행하고, 그리고 각 단계들을 보게 되었습니다.
         UML Distilled: A Brief Guide to the Standard Object Modeling Language,3rd Edition
         The Unified Modeling Language User Guide 2/E
         The Unified Modeling Language Reference Manual (2/E)
         참고로 UML 은 'Modeling Language' 입니다. 모델링 서술을 위한 언어일 뿐, 모델링이나 디자인 방법 자체에 대한 설명을 하진 않습니다. 디자인 관련 서적은 따로 서술하겠습니다.
  • UglyNumbers/곽세환 . . . . 2 matches
          * 답은 ''The 1500'th ugly number is <숫자>.'' 형식이어야 한다.
         #include <iostream>
         #include <list>
         using namespace std;
         void main()
          int cnt = 1500;
          list<unsigned int> numbers;
          unsigned int temp;
          cout << "The 1500'th ugly number is " << temp << "." << endl;
         #include <iostream>
         using namespace std;
         void main()
          int cnt;
          cin >> cnt;
          int num = 1, temp;
  • UglyNumbers/남훈 . . . . 2 matches
         print "The " + `goal` + "(st/nd/th) ugly number is " + `ugly2(goal)`
         print "The " + `goal` + "(st/nd/th) ugly number is " + `ugly3(goal)`
  • UnityStudy . . . . 2 matches
          transform.rotation *= Quaternion.AngleAxis(Input.GetAxis("Horizontal") *30.0 * Time.deltaTime, Vector3(0, 0, 1));
          transform.rotation *= Quaternion.AngleAxis(Input.GetAxis("Vertical") *30.0 * Time.deltaTime, Vector3(1, 0, 0));
          * 스플래시 이미지로 사용할 이미지를 Asset에 드래그 드롭으로 등록한 다음, Build Setting에서 Splash Image에서 설정할 수 있다.
          - Camera의 포지션을 이동하고, Point Light를 등록한 뒤, Cube에 빛을 쪼인다. 빛의 범위는 Range로 조정 가능하다.
          - plane은 background 용도로 사용할 수 있다.
  • UpdateWindow . . . . 2 matches
         재귀함수가 실행될때마다 Invalidate()를 호출하도록 해 두었는데. 화면 갱신은 재귀함수가 끝난 경우에만 하고 있었다.
         [상규]군에게 물어 해답을 찾았다. Invalidate()함수는 다음 WM_PAINT메세지가 왔을때 화면을 다시 그리도록 명령하는 함수이다. 재귀나 반복문을 수행하는 동안에는 WM_PAINT 메세지가 발생하지 않기 때문에 강제적으로 WM_PAINT메세지를 발생시켜 주어야 하는데, 그 함수가 UpdateWindow()함수이다.
  • UseCase . . . . 2 matches
         [http://searchsystemsmanagement.techtarget.com/sDefinition/0,,sid20_gci334062,00.html WhatIs Dictionary]
         나는 Alistair Cockburn이나 KentBeck, Robert C. Martin 등의 최소 방법론 주의(barely sufficient methods)를 좋아한다. 나는 이 미니말리즘과 동시에 유연성, 빠른 변화대처성 등이 21세기 방법론의 주도적 역할을 할 것이라 믿어 의심치 않는다. Robert C. Martin이 자신의 저서 ''UML for Java Programmers''(출판예정)에서 [http://www.objectmentor.com/resources/articles/Use_Cases_UFJP.pdf Use Cases 챕터]에 쓴 다섯 페이지 글이면 대부분의 상황에서 충분하리라 본다.
         그는 UseCase와 UML의 UseCase Diagram은 다른 것이라고 말하며, UseCase를 기록할 때 단순히 NoSmok:IndexCards 에 해당 UseCase의 이름만 기록해 두고, 나머지는 구두로 의견교환을 할 것을 추천한다. 그렇게 하고 시간이 지나면서 구현 내용이 점점 중요해지면 그 구체적인 내용을 카드의 여백에 채워넣으라고 한다.
         이렇게 해서 최소 하나의 프로젝트에서만이라도 "제대로 활용"을 해보고 나면 비로소 필요에 따라 "더 많은 것"을 요할 수 있다. 이 때에는 본인 역시 Robert C. Martin과 같이 Alistair Cockburn의 ''Writing Effective Use Cases''(2000년 Seminar:JoltAward 수상)를 권한다. (인터넷에서 초고 pdf화일을 구할 수 있다)
          * [http://members.aol.com/acockburn/papers/usecases.htm Structuring Use Cases with Goals]
          * [http://members.aol.com/acockburn/papers/AltIntro.htm Use Case Fundamentals]
  • UselessTilePackers . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10065.html 원문보기]
         [http://uva.onlinejudge.org/external/100/p10065.gif]
         === Input ===
         === Sample Input ===
  • UsenetMacro . . . . 2 matches
         This works well with GoogleGroups Beta service. This helps make links to GoogleGroups with text remotely extracted from usenet topic.
          global $DBInfo;
          $img = sprintf('<img src="%s/google-16.png" alt="GoogleGroups:"'.
          ' align="middle" hspace="1" />', $DBInfo->imgs_dir);
          return sprintf('%s<a href="%s">%s</a>', $img, $url, $subj);
         then it will be displayed like...
         [http://nohmad.sub-port.net/wiki/CodingLog/2003-09]
  • Vending Machine/dooly . . . . 2 matches
         package dooly.tdd.vending;
         public class VendingMachineTest extends TestSuite {
          TestSuite suite = new TestSuite("Test for dooly.tdd.vending");
          //$JUnit-BEGIN$
         package dooly.tdd.vending;
          private static final int GREEN_TEA_PRICE = 500;
          private static final int COFFEE_PRICE = 400;
          private static final int TEA_PRICE = 300;
          private VendingMachine vm;
          vm = new VendingMachine();
         package dooly.tdd.vending;
          private VendingMachine vm;
          vm = new VendingMachine();
          public void testEmptyMatchine() {
         package dooly.tdd.vending;
         public class VendingMachine {
          private int money;
          public void add(String item, int price) {
          itemMap.put(item, new Integer(price));
          public int getPrice(String item) {
  • WERTYU . . . . 2 matches
         [http://online-judge.uva.es/p/v100/10082.html 원문보기]
         http://online-judge.uva.es/p/v100/p10082.jpg
         === Input ===
         === Sample Input ===
         I AM FINE TODAY.
  • WeightsAndMeasures . . . . 2 matches
         [http://online-judge.uva.es/p/v101/10154.html 원문보기]
         === Input ===
         === Sample Input ===
          테스트 케이스가 필요하다면 꽁수가 있기는 하다. Java로 standard input으로 읽는 라인을 합쳐다가 모조리 특정 URL에 포스트 하도록 하는 코드를 만들어 업로드 한다. 그러면 심사때 사용하는 테스트 케이스를 알 수 있다. --JuNe
  • WikiProjectHistory . . . . 2 matches
         || [PaintBox] || 여러명, 각자 적으셔 || - || 종료 ||
         || [WritingOS] || 여러명, 각자 적으셔 || - || 종료 ||
         || ["ProjectZephyrus"] || ["1002"], ["neocoin"], ["상규"], 이영서(["Lupin'sHome"]) , ["신재동"], ["창섭"]|| 2002.5.12~6.10. Java Study. Java Messenger 제작 || 종료 ||
         || ["MineFinder"] || ["1002"] || 2002.2.20~3.1. Win 지뢰찾기의 지뢰 찾아주는 프로그램 제작 || 종료 ||
         || ["NSIS_Start"] || ["1002"] || 2002.2.1~2.9. NSIS Installer에 대한 사용법 작성 ||종료||
         || ["ExtremeProgramming"] || ["1002"] || 2002.1.9~1.31. ExtremeProgramming 에 대한 개념이해 & 정리 ||종료||
         || ["MoreEffectiveC++"] || ["neocoin"] || 2002.1.14~3.8 '''More Effective C++''' 예제 중심 한글화 || 종료 ||
         || ["KDPProject"] || ["1002"], ["neocoin"], ["comein2"], ["JihwanPark"] || Design Pattern Study. Wiki 활성화 첫 프로젝트. 종료후 남은 Pattern 은 개인적 담당. || 종료 ||
         || ["ZIM"] || ["1002"], ["이덕준"] || ZeroPage Instant Messenger Project || 유보 ||
         || ["D3D"] || ["erunc0"], ["woodpage"] || "Advanced 3D Game Programming using DirectX"|| 유보 ||
         || ["Refactoring"] || ["neocoin"], ["1002"] || 책요약 "Refactoring"의 요약 || 유보 ||
         || ["OpenGL_Beginner"] || ["neocoin"] || OpenGL의 기초를 공부하고, 3D로 바꿀만한 꺼리를 찾는다. ||유보||
  • WordIndex . . . . 2 matches
         This is an index of all words occuring in page titles.
          * TitleIndex -- a shorter index
         [[WordIndex]]
  • XpWeek/ToDo . . . . 2 matches
         RelesePlanning
          [[HTML(<strike>)]] 개발자 - CodingStandard정의 [[HTML(</strike>)]]
          [[HTML(<strike>)]] 개발자 - StandUpMeeting [[HTML(<strike>)]]
          [[HTML(<strike>)]] 개발자 - EngineeringTask 작업 [[HTML(<strike>)]]
          개발자 - ContinuousIntegration
         ExtremeProgramming 개발주기를 참조
          === RelesePlanning ===
          EngineeringTask 예상
          TaskPoint 할당
          ==== 개발자 - CodingStandard정의 ====
          ==== 개발자 - StandUpMeeting ====
          ==== 개발자 - EngineeringTask 작업 ====
          PairProgramming + TestDrivenDevelopment
          테스팅 -> 코딩 -> [Refactoring]
          ==== 개발자 - ContinuousIntegration ====
  • XpWeek/준비물 . . . . 2 matches
          || ExtremeProgrammingExplained || . ||. ||
          || ExtremeProgrammingInstalled || . || (V) ||
          || PlanningExtremeProgramming || . || (V) ||
          || ExtremeProgrammingApplied || . ||. ||
          || ExtremeProgrammingExplored || . ||. ||
          || ReFactoring ||. || (V) ||
          * HowToStudyExtremeProgramming
          * http://c2.com/cgi/wiki?ExtremeProgramming
          || IndexCards || 문방구에도 있고 집에도 있다. || (V) ||
  • ZeroPage_200_OK/note . . . . 2 matches
          * 1. create instance
          * 2. instance.__proto__ = Person.prototype;
          * 3. 실행문맥을 instance로 한 생성자를 호출한다.
          || VTable || <-----------------> || prototype chain (__proto__) ||
          * instance의 __proto__에서 찾고 없으면 그위에 __proto__에서 찾고...
          if (("f" in _proto) && typeof _proto["f"] === "function")
          * 상속을 위해서는 prototype chain에 등록하면 된다.
         === same origin policy ===
          * document.domain 을 조정함으로써 동일한 도메인의 범위를 바꿀수 있다.
          * wiki.zeropage.org 와 www.zeropage.org 를 동일한 도메인으로 취급하기 위해 document.domain을 zeropage.org로 설정할수 있다.
         ==== Same Origin Policy를 극복하기 위한 방법 ====
          * 원래 same origin policy를 적용받지 않음으로 극복할수 있으나 바이너리므로 애시당초 우리가 쓸수 없다.
          * Same origin policy를 적용받지 않고 자바스크립트를 불러올수 있으나 바로 실행이 되므로 다른 방식을 써야한다.
          * 이 응답은 마치 JSON에 함수만 감싼형식이기 떄문에 JSON with Padding, JSONP라 부른다.
          * windows 에서 쓰이고 역시 안정성이 뛰어나고 GUI관리가 가능하다.
          * nginx
          * Common Gateway Interface
          * standard Input에는 request body을 준다.
         nginx + nodejs
  • [Lovely]boy^_^/Arcanoid . . . . 2 matches
          * 지난번엔 x로 1, y로 1 이렇게 움직였지만.. 이번에 대각선 길이 루트2에다가 cos22.5, sin22.5 이런걸 해버리면.. 캐스팅 될때 1,0 이 되면서 수직, 또는 수평으로만 움직일 수가 있다.
         // 소스 OnInitialUpdate() 맞나? 어쨌든 초기화 하는거에서
          나는 좀더 욕심을 부려서, pDC 까지 보관하여 {{{~cpp GetDC}}}로 얻지도 않고 그릴려고 시도 했는데, 해봐 결과를 알수 있을꺼야. pDC는 끊임없이 변화를 시도하는 녀석이라 상태 유지가 되지 않더군. 바로 전까지 가진 pDC는 옛날 녀석이라 이거지, 결론으로 네가 의도하는 대로 상태 저장이 가능한 GDI Object를 그렇게 쓰는거 부담없다. --["neocoin"]
         여담으로, 전에 MFCStudy 로 할때 각도 계산까지 넣었다면 좋을뻔 했지? ^^;; 하지만 아마 그때 넣었으면 더 시간이 걸렸을꺼 같아서;; 어이 인수 과거 소스를 나에게 넘겨 쿨럭. 농담이고, 아 진작 소스 겉어 둘껄 ^^;; --["neocoin"]
          진짜 소스 겉어서 링크 해둘껄 다들 옛날 소스 보면 정말 재미있을텐데 --["neocoin"]
          * Plane can move.
          * I change a background picture from a Jang na ra picture to a blue sky picture. but my calculation of coordinate mistake cuts tree picture.
          * When a ball collides with a moving bar, its angle changes, but it's crude. Maybe it is hard that maintains a speed of a ball.
          * Now sources become very dirty, because I add a new game skill. I always try to eliminate a duplication, and my source has few duplication. but method's length is so long, and responsiblity of classes is not divided appropriately. All collision routine is focusing on CArcaBall class.
          * I don't want pointers in container, so I had to make a copy constructor, substitute operator.--;
          * I change a design of a arcanoid. - previous version is distribute, but this version is that god class(CArcanoidDoc)' admins a total routine. in my opinion, it's more far from OOP.--;
          * It becomes like the badball--;
  • [Lovely]boy^_^/Diary/2-2-11 . . . . 2 matches
         == In Korean ==
          * 선호랑 ["TheWarOfGenesis2R"]의 일환으로 타일 에디터를 만들었다. BMP 파일 약간 개조해서 뒤에다가 타일 데이터를 덧붙였다.
  • [Lovely]boy^_^/Diary/7/15_21 . . . . 2 matches
          * Grammar In Use 39-41
          * Grammar in use 42-45
          * Grammar In Use 46~49
  • ddori . . . . 2 matches
          * Born in 1980 November 9th
         = Interested In =
          * Kevin Kern - Hide and Seek
          * Brian Crain - Betterfly waltz
          * "Legnedary" Nirvana - they were just so awesome! No one won't be able to be better than them
          * Rage Against Machine
          * Third eye blind - Semi-charmed life
          * Boyz 2 men - they are so sweet that will melt my heart away ;)
  • erunc0/COM . . . . 2 matches
         === 2. Interface ===
          * 개인적으로 COM 구현할때는 (정확히야 뭐 ActiveX Control) 손수 COM 구현하는데 하는 일들이 많아서 -_-.. (Interface 작성하고 IDL 컴파일해주고, COM Component DLL Register 해주고 그다음 COM Component 잘 돌아가는지 테스트 등등) 거의 Visual Studio 의 위자드로 작성한다는. --a 그리고 COM 을 이해할때에는 OOP 에 대한 좀 바른 이해를 중간에 필요로 할것이라 생각. 디자인 패턴에서의 Factory, FacadePattern 에 대해서도 아마 읽어볼 일이 생기기라 생각.
  • snowflower . . . . 2 matches
         ||DCinema||디지털 시네마 인코더/디코더 using JPEG2000 || 2007.01 ~ ||
         ||[TheWarOfGenesis2R]||창세기전2 리메이크 프로젝트|| _ ||
         ||["SRPG제작"]||SRPG에 대한 대략적인 계획 - 현재는 ["TheWarOfGenesis2R"]과 함께|| _ ||
         ||CanvasBreaker||ObjectProgramming Project|| _ ||
         ||[PaintBox]||Java로 그림판 만들기|| 2005.12 ||
         ||[DirectX2DEngine]||DX로 2D 엔진 제작|| 2006.07 ~ ||
         ||[BuildingParser]||파서를 만들어보세~|| 2006.04.08 ~ 2006.06||
  • 강희경/도서관 . . . . 2 matches
          * Pleasure Of Finding Things Out (리처드 파인만)
         || 4 || NoSmoke:TheArtOfComputerProgramming || 카누스 || [강희경] || [TAOCP] ||
         || 1 || NoSmoke:TheArtOfComputerProgramming || 카누스 || [강희경] || [TAOCP] ||
  • 그래픽스세미나/1주차 . . . . 2 matches
          PPT파일: Upload:CGseminar01.zip
          * 선을 Clipping하는 방법
          * 비교하기전에 걸러내는 방법으로는 Cohen-Sutherland 알고리즘이 있다.
          * Outcode가 0000 일 경우엔 Clipping 이 필요하다.
         || 강인수 || Upload:OpenGL_Report1_Insu.zip API Ver. ||
         || 강인수 || Upload:GL_Report1_Insu_MFC.zip MFC Ver. ||
         || [류상민] || Upload:OpenGL01_NeoCoin_GLUT.zip ||
         || [상규] || [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/1%c1%d6%c2%f7/Triangle.zip API Ver.] ||
  • 금고 . . . . 2 matches
         입력은 표준 입력(standard input)을 통해 받아들인다. 입력의 첫줄에는 테스트 케이스의 개수 T(1 <= T <= 10)가 주어진다. 각 테스트 케이스는 한줄에 빌딩 전체 층수와 금고의 개수를 의미하는 두개의 정수 N과 K(1 <= K <= N <= 500)가 순서대로 주어진다.
         === Sample Input ===
         === Extra Test Input ===
  • 김희성/MTFREADER . . . . 2 matches
         #include"ntfs.h"
         #define FILE_LOAD_ERROR 1
         #define OUT_OF_MEMORY_ERROR 2
          int ErrorCode;
          __int64 ReadCluster(unsigned char* point,unsigned char* info);
          hVolume = CreateFile(drive, GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE, 0,OPEN_EXISTING, 0, 0);
          int LastErrorCode(); //최근에 일어난 클래스 내부의 에러를 반환한다.
          void MakeBinaryFile(char* filename); //MFT를 Binary 그대로 저장한다.
         #include"_MFT_READER.h"
          unsigned __int64 point,i,j,k,temp;
          unsigned __int64 HeaderSize;
          unsigned __int64 offset;
          point=*((unsigned short*)((unsigned char*)$MFT+20));//Offset으로 포인터 이동
          while(*((unsigned long*)((unsigned char*)$MFT+point))!=0xFFFFFFFF)
          *((unsigned char*)MFT+point+9) = Attribute Name Size
          if(*((unsigned char*)$MFT+point+8))
          HeaderSize=64+*((unsigned char*)$MFT+point+9);
          HeaderSize=24+*((unsigned char*)$MFT+point+9);
          switch(*((unsigned long*)((unsigned char*)$MFT+point)))
          MFT=PFILE_RECORD_HEADER(new U8[*((unsigned __int64*)((unsigned char*)$MFT+point+40))]);
  • 논문번역/2012년스터디/이민석 . . . . 2 matches
          * 「Experiments in Unconstrained Offline Handwritten Text Recognition」 번역
          * 다음 주까지 1학년 1학기에 배운 Linear Algebra and Its Applications의 1.10, 2.1, 2.2절 번역하기
         == Experiments in Unconstrained Offline Handwritten Text Recognition(제약 없는 오프라인 필기 글자 인식에 관한 실험) ==
         오프라인 필기 글자 인식을 위한 시스템을 소개한다. 이 시스템의 특징은 분할이 없다는 것으로 인식 모듈에서 한 줄을 통째로 처리한다. 전처리, 특징 추출(feature extraction), 통계적 모형화 방법을 서술하고 저자 독립, 다저자, 단일 저자식 필기 인식 작업에 관해 실험하였다. 특히 선형 판별 분석(Linear Discriminant Analysis), 이서체(allograph) 글자 모형, 통계적 언어 지식의 통합을 조사하였다.
         필기 글자 인식은 패턴 인식의 도전적인 분야다. 지금까지의 오프라인 필기 인식 시스템들은 대부분 우편 주소 읽기나 은행 수표 같은 형식을 처리하는 데 적용되었다. [14] 이들 시스템이 개별 글자나 단어 인식에 한정된 반면 제약 없는(unconstrained) 필기 글자 인식을 위한 시스템은 거의 없다. 그 이유는 이러한 작업이 크게 복잡하기 때문인데 글자 또는 단어의 경계에 대한 정보가 없는 데다 헤아릴 수 없을 정도로 어휘가 방대한 것이 특징이다. 그럼에도 필기 글자 인식 기법을 더 조사하는 것이 가치 있는 이유는, 계산 능력이 향삼함에 따라 더욱 복잡한 처리를 할 수 있기 때문이다.
         글을 한 걸음 더 처리하기 위해 각각의 줄을 추출하여야 한다. 그러기 위해 이미지를 필기 라인의 핵심 영역(core region)들 사이를 분리한다. 핵심 영역, 즉 텍스트 라인의 위 베이스라인과 아래 베이스라인 사이의 영역은 threshold를 적용하여 찾는다. threshold는 줄들이 핵심 영역에 속하기 위해 필요한 전방foreground 픽셀들의 최소 개수를 나타낸다. 이 threshold는 이진화한 필기 영역의 수평 밀도 히스토그램을 이용하여 Otsu의 방법 [12]를 적용하면 자동으로 결정된다. 그 다음 수평 투영 히스토그램에서 각 줄의 검은 픽셀의 개수가 축적되고 이미지는 이 투영 히스토그램의 minima를 따라 핵심 영역별로 나눠진다.
         수직 위치와 기울임은 [15]에 서술된 접근법과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 측정법을 적용하여 교정한 반면에, 경사각 계산은 가장자리edge 방향에 기반한다. 그러므로 이미지는 이진화되고 수평 흑-백과 백-흑 전환을 추출하는데 수직 stroke만이 경사 측정에 결정적이다. canny edge detector를 적용하여 edge orientation 자료를 얻고 각도 히스토그램에 누적한다. 히스토그램의 평균을 경사각으로 쓴다.
         필기의 크기를 정규화하기 위해 각 줄의 극값(local extrema) 개수를 세고 줄의 너비와의 비율을 얻는다. 비례(scaling) 계수는 이 비율에 선형인데 비율이 클 수록 글씨체는 더 좁아지기 때문이다.
         필기 줄을 전처리한 이미지는 특징 추출 단계의 입력 자료로 사용된다. sliding window 기법을 [11]이 설명하는 접근법과 비슷하게 적용한다. 우리의 경우 이미지의 높이와 열 네 개 크기의 창이 이미지의 왼쪽에서 오른쪽으로 두 열씩 겹치면서 움직이고 기하 추출의 쌍을 추출한다.
         sliding window의 각 열에서 특징 7개를 추출한다. (1) 흑-백 변화 개수(windowed text image의 이진화 이후), (2) 베이스라인에 대한 강도 분포의 평균 값 위치, (3) 최상단 글자 픽셀에서 베이스라인까지의 거리, (4) 최하단 글자 픽셀에서 베이스라인까지의 거리, (5) 최상단과 최하단 텍스트 픽셀의 거리, (6) 최상단과 최하단 텍스트 픽셀 사이의 평균 강도, (7) 그 열의 평균 강도. 특징 (2)-(5)는 core size, 즉 하단 베이스라인과 상단 베이스라인(극대값을 통한 line fitting으로 계산)의 거리에 의해 정규화되어, 글씨 크기의 변동에 대해 더욱 굳건해진다. 그 후에 모든 특징은 윈도우의 네 열에 걸쳐 평균화된다.
         강도 분포의 평균값의 변화 뿐 아니라 하단 contour와 상단 contour의 방향을 고려하기 위해 추가적으로 세 가지 방향성 특징을 계산한다. 말인 즉 우리는 네 lower countour 점, upper contour 점, sliding window 내 평균값을 통해 줄들을 재고 선 방향들을 (8), (9), (10) 특성으로 각각 사용한다. (뭔 소리) 더 넓은 temporal context를 고려하여 우리는 특징 벡터의 각 성분마다 근사적인 수평 미분을 추가로 계산하고 결과로 20 차원 특징 벡터를 얻는다. (윈도우당 특징 10개, 도함수 10개)
         특징 벡터들을 decorrelate하고 종류 분별력을 향상하기 위해 우리는 훈련 단계와 인식 단계에서 LDA를 통합한다. (cf. [6]) 원래 특징 표현을 일차 변환하고 특징 공간의 차원을 점차 줄이며 최적화한다. 일차 변환 A를 구하기 위해 훈련 자료의 클래스내 분산(within class scatter) 행렬 Sw와 클래스간 분산(between class scatter) 행렬 Sb를 이용하여 고유 벡터 문제를 해결한다. 이 분산(scatter) 행렬들을 계산하여 각 특징 벡터의 HMM 상태와 함께 이름표를 붙여야 한다. 우리는 먼저 일반적인 훈련을 수행하고 훈련 자료들을 상태를 기준으로 정렬한다. 분산 행렬을 구했으면 LDA 변환은 다음 고유 벡터 문제를 풀어 계산한다.
         필기 글자 인식을 위한 HMM의 구성, 훈련, 해독은 ESMERALDA 개발 환경[5]이 제공하는 방법과 도구의 틀 안에서 수행된다. HMM의 일반적인 설정으로서 우리는 512개의 Gaussian mixtures with diagonal covariance matrice(더 큰 저자 독립 시스템에서는 2048개)를 포함하는 공유 코드북이 있는 semi-continuous 시스템을 사용한다. 52개 글자, 10개 숫자, 12개 구두점 기호와 괄호, 공백 하나를 위한 기본 시스템 모형은 표준 Baum-Welch 재측정을 사용하여 훈련된다. 그 다음 한 줄 전체를 인식하기 위해 글자 모형에 대한 루프로 구성된 conbined model이 사용된다. 가장 가능성 높은 글자 시퀀스가 표준 Viterbi beam- search를 이용하여 계산된다.
         위 식에서 P(W)는 글자 시퀀스 w의 언어 모형 확률이고 P(X|W)는 이 글자 시퀀스를 그 글자 모형에 따라 입력 데이터 x로서 관찰한 확률이다. 우리의 경우 absolute discounting과 backing-off for smoothing of probability distribution을 이용한 바이그램 언어 모형을 적용하였다. (cf. e.g. [3])
         추가로 Bern 대학의 Institute of Informatics and Applied Mathematics, 즉 Horst Bunke와 Urs-Viktor Marti에게 감사한다. 이들은 우리가 필기 양식 데이터베이스인 IAM[10]을 인식 실험에 쓰는 것을 허락하였다.
         == Linear Algebra and Its Applications (4th ed.) by David C. Lay ==
  • 데블스캠프2002/진행상황 . . . . 2 matches
          * OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
          * StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
          * ObjectOrientedProgramming - ["RandomWalk2"] 에 대해서 창준이형과 ["1002"] 는 서로 이야기를 해 나가면서 하나씩 객체들을 뽑아내가는 과정을 설명했다. 일종의 CRC 카드 세션이었다. 그러고 나서는 프로젝터를 통해, 직접 Prototype을 만들어 보였다. OOP/OOAD로 접근하는 사람의 사고방식과 프로그래밍의 과정을 바로 옆에서 관찰할 수 있었다.
          * Python 기초 + 객체 가지고 놀기 실습 - Gateway 에서 Zealot, Dragoon 을 만들어보는 예제를 Python Interpreter 에서 입력해보았다.
          * ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
         Python으로 만든 스타크래프트 놀이는 참가자들이 무척이나 좋아했다. 또 그 직전에 Python Interactive Shell에서 간단하게 남자, 여자, 인간 클래스를 직접 만들어 보게 한 것도 좋아했다. 아주 짧은 시간 동안에 OOP의 "감"을 느끼게 해주는 데 일조를 했다고 본다.
          * '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
         다른 하나는, 요구사항이 어떻게 제시되느냐가 산출물로서의 프로그램에 큰 영향을 끼친다는 점이다. 요구사항이 어떤 순서로 제시되느냐, 심지어는 어떤 시제로 제시되느냐가 프로그램에 큰 영향을 끼친다. 심리학에서 흥미로운 결과를 찾아냈다. "내일은 한국과 브라질의 경기날입니다. 결과가 어떻게 될까요?"라는 질문과, "어제는 한국과 브라질의 경기가 있었습니다. 결과가 어땠나요?"라는 질문에 대해 사람들의 대답은 큰 차이가 있었다. 후자 경우가 훨씬 더 풍부하고, 자세하며, 구체적인 정보를 끌어냈다. 이 사실은 요구사항에도 적용이 되어서, 요구사항의 내용을 "미래 완료형"이나 "과거형"으로 표현하는 방법(Wiki:FuturePerfectThinking )도 생겼다. "This system will provide a friendly user interface"보다, "This system will have provided a friendly user interface"가 낫다는 이야기다. 어찌되었건, 우리는 요구사항이 표현된 "글" 자체에 종속되고, 많은 영향을 받는다.
         처음 ["1002"]가 계획한 세미나 스케쥴은 조금 달랐다. "어떻게 하면 ObjectOrientedProgramming의 기본 지식을 많이 전달할까"하는 질문에서 나온 스케쥴 같았다. 나름대로 꽤 짜임새 있고, 훌륭한(특히 OOP를 조금은 아는 사람에게) 프로그램이었지만, 전혀 모르는 사람에게 몇 시간 동안의 세미나에서 그 많은 것을 전달하기는 무리가 아닐까 하고 JuNe은 생각했다. 그것은 몇 번의 세미나 경험을 통해 직접 느낀 것이었다. 그가 그간의 경험을 통해 얻은 화두는 다음의 것들이었다. 어떻게 하면 적게 전달하면서 충분히 깊이 그리고 많이 전달할까. 어떻게 하면 작은 크기의 씨앗을 주되, 그것이 그들 속에서 앞으로 튼튼한 나무로, 나아가 거대한 숲으로 잘 자라나게 할 것인가.
         그래서 ["1002"]와 JuNe은 세미나 스케쥴을 전면적으로 재구성했다. 가르치려던 개념의 수를 2/3 이하로 확 잘랐고, 대신 깊이 있는 학습이 되도록 노력했다. 가능하면 "하면서 배우는 학습"(Learn By Doing)이 되도록 노력했다.
          * 세미나 - DevelopmentinWindows, EventDrivenProgramming, Web Programming
          * DevelopmentinWindows 세미나는 신입생들에게는 조금 어려웠나봅니다. 준비도 많이 하고 쉽게 설명하려고 복잡한건 다 뺐는데...... 그래도 어려웠나봅니다. 어쨌든 조금이나마 도움이 되었으면 좋겠습니다. --상규
          * Web Programming 때 상규의 보충설명을 보면서 상규가 대단하다는 생각을 해봤다. 간과하고 넘어갈 뻔 했었던 Web Program의 작동원리에 대해서 제대로 짚어줬다고 생각한다. --["1002"]
         EventDrivenProgramming 의 설명에서 또하나의 새로운 시각을 얻었다. 전에는 Finite State Machine 을 보면서 Program = State Transition 이란 생각을 했었는데, Problem Solving 과 State Transition 의 연관관계를 짚어지며 최종적으로 Problem Solving = State Transition = Program 이라는 A=B, B=C, 고로 A=C 라는. 아, 이날 필기해둔 종이를 잃어버린게 아쉽다. 찾는대로 정리를; --["1002"]
          * Unix 가 뭐하는거에요? Linux 랑 다른거에요?
          * ["neocoin"] : 정직, 맘 상했다면 정말 미안하다. 미리 언질을 주고 덧붙이기를 하더라도 해야 했는데, 시간이 모자라서 그냥 막무가내로 나와서 이야기를 풀어 놓았구나. 그리고, 앞에서 이야기 하던 중 영문도 모르게, 박수를 받게 만든 남훈이에게도 미안 하다. 엎드려 있는 사람을 완전히 깨우기 위해 '환기의 큰소리'가 필요 했었다. 앉아 있는 사람들은 못느꼈을지 모르겠지만, 앞에서 보고 있던 나는, 그 박수 소리로 마지막 2명이 일어나 칠판을 바라 보는 큰 효과를 보았다. 박수 후 이야기 중 불쾌한 모습 보이지 않아서 고맙다. --["상민"]
  • 데블스캠프2005/주제 . . . . 2 matches
         || 금 || ? || [신재동], [임인택] , 이정직[fnwinter] || 실습까지 3시간 예상 , 윈도우즈 프로그래밍 || 네트워크 이용한 게임 정도 ||
         [Refactoring], [TestDrivenDevelopment], [STL], [ObjectOrientedProgramming],
         C//C++의 차이, JAVA 맛보기, 네트워크, 자료구조, Linux, C(주입식교육), 알고리즘,
         [http://gvr.sourceforge.net/ Guido van Robot], PairProgramming 시연(?),
         Recursion 과 Iteration (IndexCard 등을 이용해서.. ToyProblems 따위의 문제 풀어보기,
         PairProgramming 하면 더 좋을듯)
         In my life, I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one's destination.
         My point is that a program is never a goal in itself; the purpose of a program is to evoke computations and the purpose of the computations is to establish a desired effect.
         -Edsger W. Dijkstra, 'Notes on structured programming'
         - Guido van Robot 보니까 옛날 LOGO 프로그램 생각나네.. 비슷한거 같은데 아닌가? - fnwinter
         [DevelopmentinWindows] 여기에 메세지 루프에 관한 설명하고 툴 디버깅에 대한 얘기 하면 되겠다. 감기가 걸려서 오늘 갈 수 있을 란지...
  • 데블스캠프2011/넷째날/Android/송지원 . . . . 2 matches
          /** Called when the activity is first created. */
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          Button button1 = (Button)findViewById(R.id.button1);
          Button button2 = (Button)findViewById(R.id.button2);
          Button button3 = (Button)findViewById(R.id.button3);
          String btn = "";
         == Main.xml ==
         <?xml version="1.0" encoding="utf-8"?>
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:text="@string/hello"></TextView>
          android:id="@+id/inputText"></EditText>
          <LinearLayout
          android:id="@+id/linearLayout1"
          </LinearLayout>
         </LinearLayout>
  • 데블스캠프2011/셋째날/String만들기 . . . . 2 matches
         String str("abcdef");
         String str2("abcb");
         String str3(" aB c ");
         || contains || str.contains("bcd") == TRUE ||
         || equals || str.equals(new String("abcdef")) == TRUE ||
         || equalsIgnoreCase || str.equalsIgnoreCase(new String("ABcdEf")) == TRUE ||
         || indexOf || str2.indexOf("b") == 1 ||
         || lastIndexOf || str2.lastIndexOf("b") == 3 ||
         || subString || str.subString(2, 4) == "cd" ||
         || format || String::format("참석자 : %d명", 8) == "참석자 : 8명" ||
         || valueOf || String::valueOf(3) == "3" ||
          * [데블스캠프2011/셋째날/String만들기/송지원]
          * [데블스캠프2011/셋째날/String만들기/김준석]
          * [데블스캠프2011/셋째날/String만들기/서지혜]
  • 데블스캠프2011/셋째날/String만들기/김준석 . . . . 2 matches
         #include<iostream>
         using namespace std;
         class String{
          int offset;
          int count;
          String(){
          String(const char *original){
          count = strlen(original);
          strcpy(value,original);
          String(const String& str, const int offset,const int count){
          void print(){
          for(int i =0;i<count;i++){
          char charAt(const int at){
          int indexOf(String& str){
          for(int i =0; i < this->count; i++){
          int select = -1;
          for(int j = 0; j < str.count-1;j++){
          int lastIndexOf(String& str){
          int choice = -1;
          for(int i =0; i < this->count; i++){
  • 데블스캠프2012/셋째날/앵그리버드만들기 . . . . 2 matches
         //input your javascript code!
         <!-- input your tags! -->
          clearInterval(intervalId);
         var intervalId = setInterval(Loop, 30);
  • 디자인패턴 . . . . 2 matches
          * [http://www.cmcrossroads.com/bradapp/docs/pizza-inv.html - Pizza Inversion - a Pattern for Efficient Resource Consumption]
         그리고 한편으로는 Refactoring을 위한 방법이 됩니다. Refactoring은 OnceAndOnlyOnce를 추구합니다. 즉, 특정 코드가 중복이 되는 것을 가급적 배제합니다. 그러한 점에서 Refactoring을 위해 DesignPattern을 적용할 수 있습니다. 하지만, Refactoring 의 궁극적 목표가 DesignPattern 은 아닙니다.
          * http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps - Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods
          - DeadLink
  • 떡장수할머니/강소현 . . . . 2 matches
          public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int d = sc.nextInt();
          int [] num = new int[d+1];
          for(int i=2; i<num.length; i++){
          int k = sc.nextInt();
          find(num[d-3],num[d-2],k);
          private static void find(int x, int y, int k) {
          int i=1;
          System.out.println(i+"\n"+(k-x*i)/y);
  • 만년달력/재니 . . . . 2 matches
         #include <iostream>
         using namespace std;
         int main(){
          int year, month;
          int theFirstDay;
          int numOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
          cout << "Input Year : ";
          cin >> year;
          cout << "Input month : ";
          cin >> month;
          theFirstDay = ( --year * 365 + year / 4 - year / 100 + year / 400 + 1 ) % 7;
          for (int i = 1 ; i < month ; i++){
          theFirstDay = ( theFirstDay + numOfMonth[i - 1] ) % 7;
          for (i = 0 ; i < theFirstDay ; i++)
          if ( ( theFirstDay + i ) % 7 == 0 && i != 0 )
  • 무엇을공부할것인가 . . . . 2 matches
         SeparationOfConcerns로 유명한 데이비드 파르나스(David L. Parnas)는 FocusOnFundamentals를 말합니다. (see also ["컴퓨터고전스터디"]) 최근 작고한 다익스트라(NoSmok:EdsgerDijkstra )는 수학과 언어적 능력을 말합니다. ''Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. -- NoSmok:EdsgerDijkstra '' 참고로 다익스트라는 자기 밑에 학생을 받을 때에 전산학 전공자보다 수학 전공자에게 더 믿음이 간다고 합니다.
         ([http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&inlang=ko&newwindow=1&frame=right&th=382f243e8edce15a&seekm=slrnam7pfh.ds.gerhard.haering%40haering.opus-gmbh.net#link1 관련 원문])
         As for the job market, Python isn't among the buzzwords that you'll find in
         job descriptions most of the time. But software development isn't that much
         about particular technologies, the important part is learning concepts. If
         you learn Python, you won't be able to avoid learning (at least):
         - Object Oriented Programming (OOP)
         - Procedural Programming
         There's a lot more concepts that you can learn while using Python, as you
         - Functional Programming
         - Dividing software into components
         Learn concepts, not tools. At least in the long run, this will make you
         more attractive to employers who have a clue about what's important in the
         software industry.
         There are some more skills that are especially important:
         - Team work: dividing up tasks. Defining the interfaces up front to avoid
          blocking other team members who wait for you. Using a source code control
         - Communication/efficient problem solving: not trying yourself for days to
          solve a problem that could be solved a lot more efficiently by calling
          the client or writing an email - I've had problems with this myself in
  • 방울뱀스터디/GUI . . . . 2 matches
         == 창(Window) 만드는법 ==
         from Tkinter import *
         root.mainloop()
         entry.insert(0, '') # 처음부분에 공백 문자열을 추가
         var = IntVar() # 0을 초기값으로 하는 정수 변수 ()속에 숫자를 넣어주면 그값으로 초기화됨.
         var = IntVar()
         Radiobutton 함수호출에서 indicatoron=0을 넣어주면 라디오버튼모양이 푸시버튼모양으로 된다.
         textArea.insert(END, "Hello")
         textArea.insert(INSERT, "world")
         textArea.insert(1.0, "!!!!!")
         textArea.window_create(INSERT, window=button)
         INSERT는 현재 커서위치에 삽입
         window_create대신에 image_create를 이용하여 단추를 문서 안에 추가시킬수도 있음.
         textArea.deletet(INSERT) # 현재 문자 삭제
         index = textArea.index(INSERT)
         index에 '1.17'과 같은 값이 리턴됨.
  • 상규 . . . . 2 matches
          * [DevelopmentinWindows] (2002.6.26)
          * [JavaStudyInVacation] (2003.1.20 ~ )
          * [InWonderland] (2004.4.25 ~ 6.11)
  • 새싹교실/2011/Pixar/4월 . . . . 2 matches
          * Type Casting
          * Infinite loop
         #include <stdio.h>
         #include <assert.h>
         int main()
          int score;
          printf("%c \n", grade);
         #include <stdio.h>
         #include <assert.h>
         int main()
          int score;
          printf("%c" , grade);
          * Infinite loop
  • 새싹교실/2011/學高/4회차 . . . . 2 matches
          * Input three integers: 2 3 7
          * The sum of your integers plus 7 is 19
          * Hint
         #include <stdio.h>
         int main()
          int x,y,z;
          // printf()로 결과 출력하기
          * printf 사용법
          * %d: decimal integer
          * 정수형 data type: int, char
         #include <stdio.h>
         #define PI 3.141592
         int main()
          int price;
          printf("직경: "); scanf("%f",&diameter);
          printf("가격(단위 원): "); scanf("%d",&price);
          printf("넓이: %.2f\n",PI*diameter*diameter);
          printf("조각 당 가격: %d\n",price/8);
         #include<stdio.h>
         int main()
  • 새싹교실/2011/무전취식/레벨1 . . . . 2 matches
          == ICE Breaking ==
          * 변수 : Integer(정수) => int, Character(문자) => char 기타 등등!
         변수타입(int,float, double, long) 변수이름,변수이름,변수이름;
         #include<stdio.h>
         int main(){
          int x1,x2,x3;
          printf("%c",y_myname);
         Integer => 정수
         이소라 : 역시 실습이 짱이다. int main과 return 0을 쓰는 이유를 들었다.
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 대학교와서 처음으로 C실습을 해본 뒤에 듣는 수업이었다. 고등학교때는 VS6.0버전을써서 2008버전이 많이 어색했었다. 교수님이 설명도 제대로안해주시고 ㅠㅠ 안배우고왔으면 어쨌을까 걱정됬었다. 하지만!!! 새싹수업듣고 별로 걱정안해도 되겠구나 하는 생각이 들었당 ㅎ.ㅎ 고등학교때는 void main을 썼었는데 int main을쓰고 리턴해주는 이유를 알게됬다. 처음부터 차근차근 해주시는 설명이 좋았다.ㅎㅎ 앞으로도 열심히 들어야징!!! -[이소라]
  • 새싹교실/2011/무전취식/레벨10 . . . . 2 matches
         == Ice Breaking ==
          * 헤더(*.h) 파일을 하나 더 알게되었습니다 string.h
         #include<stdio.h>
         #include<string.h>
         void main(){
          int count ,i;
          {printf("Not Pel") ;
          else printf("pel");
         #include<stdio.h>
         void main()
          int num[5];
          int newnum[3];
          int max = 0 ,min = 9999;
          int selectMin,selectMax;
          int count=0;
          int i;
          int sum;
          if (num[i]<min){
          min=num[i];
          selectMin = i;
  • 새싹교실/2012/AClass . . . . 2 matches
          * 5주차(6/6) - C++ 기초, String + Linked list (쉬는 날도 진행)
          1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
          1. #include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
          1. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
          1. 혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1)
          2.#include란?
         #include <stdio.h>
          int main(){
          int a;
          printf("%d",a*a);
          printf("%d",2*a);
          #include <stdio.h>
          int main(void)
          int i;
          int j;
          int n;
          int k;
          printf(" ");
          printf("*");
          printf("\n");
  • 새싹교실/2012/부부동반 . . . . 2 matches
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
          * Hardware / Programming Language / Software의 상관관계
          난 정말 C Programming을 공부한 적이 없다구요 - [http://kangcom.com/sub/view.asp?sku=200812300005&mcd=571]
          * Programming Language
          * Machine Language
          * Interpret Language
         * 포인터를 통해 swap(int, int) 작성해보기
         * Pointer LOL!!!!
  • 새싹교실/2012/아우토반/뒷반/4.13 . . . . 2 matches
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
         #include <stdio.h>
         int main(void) {
          int i, j;
          printf("%c", i);
          printf("\n");
         [Input] 5
         [Input] 5
         #include<stdio.h>
         int main(void)
          int a;
          int b;
          int c;
          int number;
          int v;
          printf("number? : ");
          printf(" ");
          printf("%d",a);
          printf(" ");
          printf("%d",a);
  • 새싹교실/2012/열반 . . . . 2 matches
          * The if selection statement랑The if...else selection statement배웠는데 잘모르겟어요..[김민규]
  • 새싹교실/2012/주먹밥 . . . . 2 matches
          * Linux에서 GCC를 사용한 컴파일 시범
          * 박도건 : 캡스톤설계실(208-216)에서 김준석 선배님과, 한원표, 용상훈 동기들과 같이 3월 21일 PM6시에 gcc, Linux, android example, wiki작성법 등을 배웠다. 나랑 비슷해보이는 친구가 있어서 같이 프로젝트 할 수 있을것 같다.
          * 이소라 때리기 게임을 Linux gedit를 사용해 코딩을 시켜봄.
          * printf(), scanf()어떻게 쓰는지 알죠?
          * int, char, float, long, double 변수는 무슨 표현을 위해 만들어졌는지 알려주었습니다. 정수, 문자, 실수. 알죠?
          * #define 선언문의 사용법에 대해 알려주었습니다. #define으로 매크로를 선언해놓으면 편하게 선언 단어를 만들음으로 쓸수있지용? 그 응용에 대해서는 다음에 기회가 되면 알려주겠습니다.
         {{{#!plain cpp
         #include<stdio.h>
         int main() {
         int a,b,c,d;
         printf("%d %d %d",a,b,c);
         #include <stdio.h>
         int main(void)
          int num;
          printf("Input integer.");
          printf("Leap");
          printf("Leap");
          printf("Normal");
         #include<stdio.h>
         int main()
  • 새싹교실/2013/케로로반/실습자료 . . . . 2 matches
         Social Executive of Computer Science and Engineering will hold a bar event. There are many pretty girls and handsome guys. It will be great day for you. Just come to the bar event and drink. There are many side dishes and beer. Please enjoy the event. but DO NOT drink too much, or FBI will come to catch you. Thank you.
  • 스터디그룹패턴언어 . . . . 2 matches
         기념비적인 책, ''A Pattern Language'' 와 ''A Timeless Way Of Building''에서 크리스토퍼 알렉산더와 그의 동료들이 패턴언어에 대한 아이디어를 세상에 소개했다. 패턴언어는 어떤 주제에 대해 포괄적인 방안을 제공하는, 중요한 관련 아이디어의 실질적인 네트워크이다. 그러나 패턴언어가 포괄적이긴 하지만, 전문가를 위해 작성되지 않았다. 패턴은 개개인의 독특한 방식으로 양질의 성과를 얻을 수 있도록 힘을 줌으로서 전문적 해법을 비전문가에게 전해준다.
         본 패턴언어에는 21가지 패턴이 있다. '정신', '분위기', '역할' 그리고 '맞춤'(Custom)이라고 부르는 네 섹션으로 구분된다. 해당 섹션의 패턴을 공부할 때, 이 언어의 구조를 고려하라. 본 언어의 앞 부분인 '정신' 섹션의 패턴은 스터디 그룹의 핵심 즉, 배움의 정신(spirit of learning)을 정의하는 것을 도와 줄 것이다. 다음 섹션 '분위기', '역할', '맞춤'은 앞선 핵심 패턴과 깊이 얽혀있으며 그것들을 상기시켜줄 것이다.
          * [통찰력풀패턴](PoolOfInsightPattern)
          * [지속적인에너지패턴](EnduringEnergyPattern)
          * [마음이맞는협력자패턴](KinderedCollaboratorPattern)
         Establish a home for the study group that is centrally located, comfortable, aesthetically pleasing, and conducive to dialogue.
          * PublicLivingRoomPattern
          * IntimateCirclePattern
          * DistinguishedParticipantPattern
         Follow customs that will re-enforce the spirit of the group, piquing participant's interest in dialogues, accommodating different learning levels, making the study of literature easier, recording group experiences, and drawing people closer together.
          * OpeningQuestionPattern
         원문 : http://www.industriallogic.com/papers/khdraft.pdf
  • 오페라의유령 . . . . 2 matches
         http://www.aladdin.co.kr/Cover/8970752366_1.gif
         소설이 먼저였지만, 개인적으로 Webber 와 Sarah 의 노래를 엄청나게 좋아하는 관계로. 소설을 읽는 내내 머릿속에서 Think of Me, The Music of Night, Wishing you were somehow here again 가 배경음악으로 깔리었다.
         웨버아저씨에게 상상력을 선사해준 소설이란? 원작에 상관없이 자신스타일로 작품을 만들어내는 웨버아저씨여서 (그래봤자 본건 하나뿐이지만; 한편은 대본읽음). 개인적인 결론은 해당 소설로부터 자신의 주제의식을 뽑아낸 웨버아저씨 멋져요 이긴 하지만, 이 소설이 태어나지 않았더라면 Phantom of the opera 가 나타나지 않았을 것이란 생각이 들기에. (소설의 구성 등을 떠나서, Phantom 이라는 캐릭터를 볼때)
         뮤지컬의 이미지때문인지 (한번도 안본 뮤지컬에 대해 이미지를 떠올리는것도 우스운 일이다. OST와 Sarah 의 뮤직비디오는 많이 보긴 했지만) 크리스틴을 볼때마다 사라아주머니의 젊었을때의 사진을 떠올렸고, Phantom 이 등장할때엔 그 Main Theme (Phantom 의 그 멋진 웃음소리와도 같게 들리는...) 를 떠올렸다.
         http://www.westegg.com/unmaintained/alw/webber.jpg [[BR]]
          * EBS 에선가 Joseph and the Amazing Technicolor Dreamcoat를 방영해줬던 기억이 난다. 성경에서의 요셉이야기를 이렇게 표현할 수 있을까; 형 왈 '아마 성경을 이렇게 가르친다면 교회에서 조는 사람들 없을꺼야;' 어떻게 보면 '아아 꿈많고 성공한 사람. 우리도 요셉처럼 성공하려면 꿈을 가져야해;' 이런식이였지만, 아주 신선했던 기억이 난다.
          * 암튼 Phantom of the opera 에서 가장 멋진 목소리는 Phantom 이라 생각. 그리고 당근 Sarah 아주머니; Phantom 이라는 캐릭터 이미지가 맘에 들어서. 그리고 노래도.
          * 소설에서의 Angle of the music 은 Phantom 을 이야기하는것 같은데, 왜 Webber 의 노래에선 크리스틴을 지칭할까.
  • 오픈소스검색엔진Lucene활용 . . . . 2 matches
          in = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
          in = new BufferedReader(new InputStreamReader(System.in));
          Query query = QueryParser.parse(line, field, analyzer);
          Query query = QueryParser.parse(line+"*", field, analyzer);
  • 위시리스트/130511 . . . . 2 matches
          * http://www.interpark.com/product/MallDisplay.do?_method=detail&sc.shopNo=0000100000&firpg=01&sc.prdNo=13003385&sc.dispNo=016001&sc.dispNo=016001
          * Computer Security, 2/E (IE), (저자: William Stallings) -[김태진]
          * Mastering MATLAB, (저자: Duane Hanselman) -[김태진]
          * 모기향: The Summer is Comming... - [권순의]
          * Refactoring (저자: 마틴 파울러) - [권순의]
          * The C# Programming Language (Fourth Edition) 한국어판 - [김민재]
  • 이영호/64bit컴퓨터와그에따른공부방향 . . . . 2 matches
         C, C++, Assembly, Linux Kernel, Network, Compilers
         내가 걸어야할 길은 지금과 같은 Network, Linux Kernel이 아니라
         (C를 사용할 시 Inline Assmbly만을 허용한다.)
          * Global Optimization 관점에서, 어느 부분은 생산성을 살리고 어느 부분은 퍼포먼스를 추구할까? 퍼포먼스를 추구하는 모듈에 대해서는, 어떻게 하면 추후 퍼포먼스 튜닝시 외부 모듈로의 영향력을 최소화할까? (InformationHiding)
         참고로 저는 82년부터 기계어(Machine Code)로 프로그래밍을 해본 사람입니다. 그렇지만 그 경험이 제가 현재 컨설턴트로, 프로그래머로 살아가는데 결정적 도움이 되었다는 생각은 들지 않습니다.
  • 이영호/기술문서 . . . . 2 matches
         [http://wiki.kldp.org/wiki.php/DocbookSgml/GCC_Inline_Assembly-KLDP] - GCC Inline Assembly
         [http://wiki.kldp.org/wiki.php/DocbookSgml/Assembly-HOWT] - Linux Assembly HOWTO
         [http://linuxassembly.org]
         [http://linux.flyduck.com] - Linux Kernel
         [http://doc.kldp.org/KoreanDoc/html/Assembly_Example-KLDP/Assembly_Example-KLDP.html] - Linux Assembly Code
         [http://wiki.kldp.org/wiki.php/LinuxdocSgml/Assembly-HOWT] - Assembly-HOWTO V0.3c
         [http://blog.naver.com/post/postView.jsp?blogId=pjfile&logNo=40012816514] - setsockopt() && Windows lib version
         [http://bbs.kldp.org/viewtopic.php?t=24407] - Reference 에 의한 호출과 Pointer에 의한 호출 (결론: Reference는 포인터에 의해 구현되며 표현만 CallByValue 다.)
         [http://bbs.kldp.org/viewtopic.php?t=21673] - printf & sprintf 팁
         [http://bbs.kldp.org/viewtopic.php?t=2128] - GNU C 에서의 printf 의 확장 및 locale 사용
         [http://bbs.kldp.org/viewtopic.php?t=1045] - *NIX 계통의 Debug에 유용한 툴 (GNU/Linux에서는 strace = A system call tracer, ltrace = A library call tracer)
  • 정렬 . . . . 2 matches
          === Input ===
          파일 입출력을 사용해야 합니다. SeeAlso FileInputOutput 정렬의 방법은 무엇이어도 좋습니다.
  • 정모/2006.1.19 . . . . 2 matches
         sock = socket(AF_INET, SOCK_STREAM)
          void Init(CWnd *pWnd);
         void CClientSocket::Init(CWnd *pWnd)
  • 정모/2011.7.18 . . . . 2 matches
          * [Spring/탐험스터디]
          * 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
          * [EnglishSpeaking/2011년스터디]
          * Free talking과 Theme talking으로 나누어 진행.
          * Joseph Yoder와의 만남에서 배운 것. Naming은 상당히 중요합니다. Naming이 적절하면 자세한 구현을 보지 않아도 됩니다. - [김수경]
  • 정모/2012.4.2 . . . . 2 matches
          * 위키에서 이런걸 발견했다. [http://wiki.zeropage.org/wiki.php/HowToStudyInGroups HowToStudyInGroups] 링크의 제목이 슬프다 - [서지혜]
  • 조영준/파스칼삼각형/이전버전 . . . . 2 matches
         using System;
          static void Main(string[] args)
          string s;
          int lines;
          Console.WriteLine("삼각형의 크기를 입력하세요 (0 = exit)");
          s = Console.ReadLine(); //삼각형 크기를 입력받음
          lines = Convert.ToInt32(s);
          if (lines < 0)
          Console.WriteLine(e.Message);
          continue;
          if (lines == 0) return; // 프로그램 종료
          PTriangle pTriangle = new PTriangle(lines);
          Printer printer = new Printer(lines, pTriangle.getMax().ToString().Length+1);
          for (int i = 0; i < lines; i++)
          printer.print(pTriangle.Next());
         using System;
          private int[][] _triangle; //파스칼 삼각형
          private int _row; //삼각형의 총 줄
          private int _count; //현재 반환중인 줄
          private int _max; //삼각형의 최댓값
  • 졸업논문/요약본 . . . . 2 matches
         Web environment has became a standalone platform. Object-oriented languages, such as python, are suitable for web. Django is a web application framework written by python, and helps web developers writting web application more agile by abstracting database. Django provides high level abstraction on database, higher than CLI which uses ODBC. Django, for instance, creates database tables when developer writes classes in python, and modifies tables when developer modifies classes in python. In addition, django helps developers using database on host-language(python) level by abstracting insertion, deletion, update, retrieving of recodes to class method. Therefore, web developers make programs more agile.
  • 지금그때/OpeningQuestion . . . . 2 matches
         == Programming Language 는 어떻게 배워야 하나? ==
         == 몇가지 정도의 Progaramming Language 를 알고 있어야 하나? ==
         see Seminar:DontLetThemDecideYourLife, [http://zeropage.org/wiki/%C0%E7%B9%CC%C0%D6%B0%D4%B0%F8%BA%CE%C7%CF%B1%E2 재미있게공부하기]
          * off-Line 지향
          * on-Line 상에서도 가능
          * on-Line 연장 -> off-Line -> 만나면서 자유롭게 대한다.
         NoSmok:피터드러커 교수의 [이노베이터의조건]나, TheNextSociery 를 보면, 지식 노동자와 지식 기술자의 정의가 있습니다. 고등학교때 배웠던 정보화 사회는 현재에서 이미 도래했습니다. 그는 책에서 대중적 직업을 크게 지식 기술자와 지식 노동자로 나뉩니다. 지식 기술자는 '''General 한 주제'''을 가지면서 '''한 주제에 특화된 능력'''을 가진 사람이고, 둘다 부족하거나, 한 주제에 전문가 인점을 빼면 지식 노동자로 구분합니다. 정보화 사회의 중기에는 이 두계층의 구분이 거의 없는 반면, 지식 직업들이 늘어나면서 이는 확연히 구분됩니다. 앞으로 더 심해 질것입니다.
         --NeoCoin
         우리는 지식 기술자가 될 사람들이며, 지식인 기술자의 기반은 책입니다. 그리고 책을 소비하는 전체의 20%에 우리가 속해 있을 것입니다. (80/20법칙 참고) 그렇다면 적어도 전체 평균 독서량의 3배는 봐야 하지 않을까? 생각을 합니다. 2000년 기준 통계로 한국인은 일년에 총 독서량 13.5 권을 읽습니다. (Seminar:독서량 ) 그러므로 대략 1년에 30권 정도에서 타협할수 있을것 같습니다. 이는 전공책을 합친 수치입니다.
         --NeoCoin
         앞서 답한 NeoCoin군의 경우 제 주변에서도 소문날 정도로 다독을 하는 친구입니다.
         잡지 경우, ItMagazine에 소개된 잡지들 중 특히 CommunicationsOfAcm, SoftwareDevelopmentMagazine, IeeeSoftware. 국내 잡지는 그다지 추천하지 않음. 대신 어떤 기사들이 실리는지는 항상 눈여겨 볼 것. --JuNe
          * Second Wind, Runner's High를 경험했다.
  • 최대공약수/조현태 . . . . 2 matches
         #include <iostream>
         using namespace std;
         void main()
          int number_a, number_b;
          cin >> number_a;
          cin >> number_b;
          int *big_number, *small_number;
          int temp;
         #include <iostream>
         using namespace std;
         void get_GCM(int big_number, int small_number)
          int temp;
         void main()
          int number_a, number_b;
          cin >> number_a;
          cin >> number_b;
          cout << "The GCD of " << number_a << " and " << number_b << " is ";
         #include <iostream>
         using namespace std;
         int Get_GCM(int , int );
  • 최소정수의합/임인택2 . . . . 2 matches
          in ((-b+det)/twice_a,
         minint val =
          in
         에서 rnd의 타입이 Integer로 되었는데 Integer는 다른 값으로 나눠지지 않았다(내가 방법을 모르고 있을수도 있겠지만). haskell wiki를 뒤져 toRational 이라는 함수를 찾았지만 출력되는 모양이 영 마음에 들지 않는다.
  • 컴퓨터고전스터디 . . . . 2 matches
         요즘 전산학과 대학생들이 모여서 리눅스 해킹법이니, MFC API니 하는 걸 같이 스터디하는 것도 나름대로 의미가 있겠지만 컴퓨터계의 고전 하나를 제대로 스터디하는 것은 어떨까 합니다. ''군자무본 본립이도생. 군자는 근본에 힘을 쓰니, 근본이 서야 길이 생기기 때문이다.''라는 말이 논어에 나오죠. 나이가 아직 어리고, 시간적 여유가 있는 때에는 어떤 구체적인 "기술"보다 좀더 일반적이고 보편적이며 이론적인 사유를 훈련하는 것이 좋지 않을까요. 구체적 기술은 거기에 갖혀버리는(Lock-In) 경향이 있습니다. 2-3년 뒤에는 쓸모없어진다든가 하는 것이죠. 하지만 고전은 대부분 앞으로도 10년은 족히 유효한 것들입니다. 꾸준히 재해석될 가능성이 있는 것들이고, 무엇보다 문제의식과 함께 치밀한 사유를 배우는 겁니다. 생각하는 법 말이죠.
          * 2004년 여름방학 현재 TheArtOfComputerProgramming으로 진행
  • 콤비반장의메모 . . . . 2 matches
          만화 형사 가제트(Inspector Gadget)에서 콤비 반장(Chief Quimby)은 형사 가제트에게 비밀 지령을 내릴땐 항상 자동 폭파되는 특별한 메모지를 사용하곤 했다. 그러나 인터넷 시대를 맞이한 콤비 반장은 이제 메모지 대신 한번만 사용할 수 있는 파일을 사용하려고 한다. ["콤비반장의메모"]와 같은 일회용 정보는 컴퓨터로 어떻게 구현할 수 있을까.
         메모리를 mp3 버퍼.. (e.g. 32kByte) 를 더블 버퍼로 잡아서, 네트워크로 더블 버퍼링 시스템으로, 네트웍으로 받은 자료로 다음 버퍼를 채우고.. 이런 형식으로 버퍼를 채운 다음에, 플러그 인 형식으로 배포하는건 어떨까요. 머.. 이건 winamp 에만 한정되겠지요. - [zennith]
         그냥 생각이 갑자기 나서 몇자 적어 봅니다. 자기 자신이 압축을 풀 수 있는 Zip - self-..어쩌구였는데 그러한 형태로 만들고 마지막에 분리한 데이타 파일을 지우는 식으로 만들어 봐도 재미있을꺼 같다는 생각이 들어서 .. 다 아는 건가? - fnwinter [정직]
          * hint: Zip file format - Self Extractor 와 비슷한 아이디어.
          [출처]매일경제 -- fnwinter 헉...화학물질...컴퓨터 공학이 아니넹..
         see also UriWiki:InstantMp3Player
  • 타도코코아CppStudy/0724/선희발표_객체지향 . . . . 2 matches
          상대적으로 각 객체는 소속 클래스의 인스턴스(instance)가 된다.
          * Inheritance(상속) - 계층(hierarchy)관계에 놓여 있는 클래스들 간에 속성이나 연산 기능들을 공유한다.
          * 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
          * combining data and behavior : 특정한 연산 기능을 수행시킬 때 단순히 메세지만 전송하면 된다.
          * sharing : 자료 구조및 행위의 공유화(sharing)는 계층 관계에 놓여 있는 클래스들 간의 상속성(inheritance)으로 가능하다.
          * 상속성(Inheritance) : 객체를 이루는 클래스를 만들때 이전의 정의했던 클래스와 비슷하나 다른 특이한 특성을 지니는 클래스를 만드는것이다.
         객체 모형(object model) : 객체들과 그 특성을 식별하여 객체들의 정적 구조(static structure)와 그들간의 관계(interface)를 보여주는 객체 다이어그램(object diagram)을 작성한다.
         3. 객체지향 구현(object-oriented programming : OOP)
         설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
         또한, 일반적인 구조적 프로그래밍 언어(structured programming language : C, Pascal 등)도 객체지향 개발에 활용될 수 있는가 하면 객체 지향 데이타베이스 관리시스템(OODBMS)이 개발의 도구로 이용될 수도 있다.
  • 타도코코아CppStudy/객체지향발표 . . . . 2 matches
          상대적으로 각 객체는 소속 클래스의 인스턴스(instance)가 된다.
          * Inheritance(상속) - 계층(hierarchy)관계에 놓여 있는 클래스들 간에 속성이나 연산 기능들을 공유한다.
          * 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
          * combining data and behavior : 특정한 연산 기능을 수행시킬 때 단순히 메세지만 전송하면 된다.
          * sharing : 자료 구조및 행위의 공유화(sharing)는 계층 관계에 놓여 있는 클래스들 간의 상속성(inheritance)으로 가능하다.
          * 상속성(Inheritance) : 객체를 이루는 클래스를 만들때 이전의 정의했던 클래스와 비슷하나 다른 특이한 특성을 지니는 클래스를 만드는것이다.
         객체 모형(object model) : 객체들과 그 특성을 식별하여 객체들의 정적 구조(static structure)와 그들간의 관계(interface)를 보여주는 객체 다이어그램(object diagram)을 작성한다.
         3. 객체지향 구현(object-oriented programming : OOP)
         설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
         또한, 일반적인 구조적 프로그래밍 언어(structured programming language : C, Pascal 등)도 객체지향 개발에 활용될 수 있는가 하면 객체 지향 데이타베이스 관리시스템(OODBMS)이 개발의 도구로 이용될 수도 있다.
  • 토이/삼각형만들기/김남훈 . . . . 2 matches
         다만 걱정되는게 있었다면, visual studio 띄우기도 귀찮아서.. 그리고 요즘에는 이런거 짜는데 마소 비주얼 스튜디오 형님까지 끌어들이는건 좀 미안하게 느껴져서 그냥 zp server 에서 vi 로 두들겼는데.. 나 gdb 쓸 줄 모르니까. malloc 쓰면서 약간 두려웠지. 흐흐흐. 다행이 const int 를 case 에서 받을 수 없는거 (이런 줄 오늘 알았다) 말고는 별달리 에러 없이 한방에 되주셔서 즐거웠지.
         #include <stdio.h>
         #include <stdlib.h>
         #define FORWARD 1
         #define BACKWARD 2
         #define BIDIR 3
         void getUserInput(int * sel, int * num) {
         char * makeBuffer(int num) {
         void forwardTriangle(int num, char * buffer) {
          int i;
          printf("%s\n", buffer);
         void backwardTriangle(int num, char * buffer) {
          int i;
          printf("%s\n", buffer);
         int calcBidirTriangleSize(int num) {
         void bidirTriangle(int num, char * buffer) {
          int i, center;
          printf("%s\n", buffer);
         void produceTriangle(int sel, int num) {
         int main(void) {
  • 튜터링/2013/Assembly . . . . 2 matches
          * Virtual, 2진수, 메모리 공간, ALU연산, Pipeline, Multitasking, 보호모드, Little-endian, RISC&CISC
          1. Instruction Execution Cycle을 도식하고, 설명하세요.
          1. Directive와 instruction의 차이점에 대해 설명하시오.
          4.다음 방식(indirect, indexed)로 코드를 작성하고, 설명하시오.
          indirect operands indexed operands
          * Interrupt
  • 페이지제목띄어쓰기토론 . . . . 2 matches
         영문제목의 경우 대문자 단위로 붙여 쓰면 {{{~cpp (ex: TheWikiName) }}} 페이지 표시해줄때 {{{~cpp The Wiki Name}}} 식으로 알아서 띄어서 찍어준다. 하지만 한글제목의 경우는 지원하지 않는다.
  • 프로그래밍/Score . . . . 2 matches
          String line = br.readLine();
          int testCase = Integer.parseInt(line);
          for(int i = 0; i < testCase; i++) {
          line = br.readLine();
          int result = processOneCase(line);
          System.out.println(result);
          e.printStackTrace();
          e.printStackTrace();
          private int processOneCase(String line) {
          String [] group = line.split("X");
          int count = 1;
          int sum = 0;
          for(String each : group) {
          int size = each.length();
          for(int i = 0; i < size; i++) {
          public static void main(String[] args) {
  • 프로그래밍언어와학습 . . . . 2 matches
          * 학교에서 C++ 배운다고 하드웨어 건드리나. -_-; (전전공이라면 몰라도..) 컴퓨터공학과의 경우 학교에서 C++ 배워도 어셈블러 레벨까지 다루는 사람이 별로 없다고 할때, C++ 을 배웠다고 시스템레벨 까지의 깊은 이해가 필요없었다는 점인데.. 글을 읽으면, 마치 '교육용 언어로 C, C++ 을 배웠다면 시스템 레벨까지 이해할 것' 처럼 쓴 것 같다고 생각. (C, C++ 포인터를 레퍼런스 이상의 개념으로 쓴적이 있었나.. --a) 차라리 '우리는 전전공 출신에 하드웨어제어 해본 사람 뽑습니다' 라고 할것이지..쩝. Domain-Specific 한 부분을 생각치 않고서는 시스템 프로그래머에게서는 늘 자바와 Script Language 는 '군인을 나약하게 만드는 무기' 일 수밖에 없으니까.
          * Language != Domain. 물론, Domain 에 적합한 Language 는 있더라도. 이 글이건 Talkback 이건.. 두개를 동일시 본다는 느낌이 들어서 좀 그렇군. (나도 가끔은 Java Language 와 Java Platform 을 똑같은 놈으로 보는 우를 범하긴 하군. -_-;)
         The fatal metaphor of progress, which means leaving things behind us, has utterly obscured the real idea of growth, which means leaving things inside us.
         --G. K. Chesterton (1874-1936), British author. Fancies Versus Fads, "The Romance of Rhyme" (1923).
  • 학회간교류 . . . . 2 matches
         === Opening ===
          * InfoPath 사용
          * PGP (Programmable Graphics Pipeline)
          * CMMI (Capability Maturity Model Integration)
          * OllyDBG 나 WinDBG 사용 관련..
         어떤 방식으로 해야 재밌으면서 서로에게 유익할 수 있을까? '같이 해서 좋을 거리들' 에 대해서.~ ZP 의 행사중 자주 하는 PairProgramming 이나, 혹은 이전의 서강대 MentorOfArts 에서의 프로그래밍 파티 처럼.
  • 화이트헤드과정철학의이해 . . . . 2 matches
         계속 화이트헤드에 주목하는 이유라면 (김용옥씨 관점의 화이트헤드해석일지도 모르겠다. ["이성의기능"] 때문이지만.) 점진적 발전과 Refactoring 에서 뭔가 연결고리를 흘핏 봐서랄까나. 잘못하면 뜬구름 잡는 넘이 될지 모르겠지만. 이번에도 역시 접근방법은 '유용성' 과 관련해서. 또 어쩌면 용어 차용해서 써먹기가 될까봐 걱정되지만. 여유를 가지고 몇달 생각날때 틈틈히 읽으려는 책.
         비유의 아이디어로서 ["NumericalAnalysisClass"] 때 배운 Interpoliation 기법들이였다. 수치해석시간의 Interpolication 기법들은, 몇몇개의 Control Point들을 근거로 Control Point 를 지나가는 곡선의 방정식을 구하는 법이다. 처음 Control Point 들의 갯수가 적으면 그만큼 오차도 많지만, Control Point 들을 늘려가면서 점차 본래의 곡선의 모양새를 수렴해간다.
         Control Point 들은 일상의 경험들이다. 그 경험들이 삶의 방정식들을 만들어간다. 비록 그 방정식들이 오차가 많을지더라도, (라그랑주일지, Cubic Spline 일지. 어쩌면 결국 현실을 누가 더 잘 설명하느냐라는 유용성의 문제일까) 어느정도 유용하다. 공식이 완성된 선은 재계산과정없이 빨리 그릴 수 있다.
         우리는 진리를 찾기 위해 오늘도 자신의 공식에 Control Point 를 하나더 추가하고 있는것일지도 모른다. (단, 라그랑주일경우엔 좀 더 정확해보이는 Cubic Spline 으로 페러다임 전환을 하자. ^^;)
  • 후각발달특별세미나 . . . . 2 matches
         Upload:0503_RefactoringSeminar.hwp - 발표 자료.
         Upload:0503_RefactoringSeminarSrc.zip - 예제 파일들.
         [Refactoring]
         [Refactoring/BadSmellsInCode]
         #include <iostream>
         using namespace std;
         #define ARRSIZE 1024
         #define FUNMAX 10;
         int funcCount = 0;
         int main()
          int f[ARRSIZE];
          cout << "addr of f in " << funcCount << "th call : " << f << endl;
          cin.get();
          int b[ARRSIZE];
          cout << "addr of b in " << funcCount << "th call : " << b << endl;
          cin.get();
          프로젝트 때문에 빠르게 진행한게 아니라 선전부 모임때문에... 여튼 간결하게 하는 건 중요하다. 시간 되면 {{{~cpp The One Page Proposal}}}을 읽어보도록 해. --재동
  • .bashrc . . . . 1 match
         if [ -f /etc/bashrc ]; then
         if [ -z ${DISPLAY:=""} ]; then
          if [ -n "$DISPLAY" ]; then
         shopt -s checkwinsize
         if [ -x /usr/games/fortune ]; then
          case $TERM in
          case $TERM in
          linux )
         alias r='rlogin'
         alias print='/usr/bin/lp -o nobanner -d $LPDEST' # LPDEST 가 정의되어 있다고 가정
         alias pjet='enscript -h -G -fCourier9 -d $LPDEST' # enscript 로 예쁜 출력하기(Pretty-print)
         export LESSCHARSET='latin1'
         export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-' # lesspipe.sh 이 있다면 이걸 쓰세요
         :stdin .?pb%pb\%:?lbLine %lb:?bbByte %bb:-...'
          case $TERM in
         alias make='xtitle Making $(basename $PWD) ; make'
          xtitle The $(basename $1|tr -d .[:digit:]) manual
          if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then
         function ff() { find . -name '*'$1'*' ; } # 파일 찾기
         function fe() { find . -name '*'$1'*' -exec $2 {} \; ; } # 파일을 찾아서 $2 의 인자로 실행
  • 1002/TPOCP . . . . 1 match
         Seminar:ThePsychologyOfComputerProgramming 맡은 챕터 정리궁리중.
         Part 3 Programming as an individual activity
         Variations in the programming task
          Professional versus amateur programming
          What the programmer is trying to do
          case) 물리 교수로부터 해당 메트릭스를 반전하는 프로그램 작성. 한 개발자는 (A) 뭔가 배울 수 있는 좋은 기회라고 생각, buffering 을 이용하여 문제를 해결하려고 함.
          Stages of programming work
  • 2005Fall수업 . . . . 1 match
         [http://inst.eecs.berkeley.edu/~cs61c 버클리 강의 페이지. ppt 보기]
         http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200409180003
         [http://aima.cs.berkeley.edu/ Artificial Intelligence: A Modern Approach 교재 관련]
  • 2010Python . . . . 1 match
          * 교재 : How to think like a computer scientist
          * [박정근] - python의 특이한 배열? keyindex를 지정가능하고 순서대로 출력도 가능함. 그리고 python은 지정하는것이 특기인 듯
          * [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/index.htm MIT Open Courseware 6.00 Introduction to Computer Science and Programming]
  • 2011국제퍼실리테이터연합컨퍼런스공유회 . . . . 1 match
          * IAF는 International Association of Facilitator의 약자.
          1. 3 Most Valuable Learnings - 채홍미/조현길 60분
  • 2011년독서모임 . . . . 1 match
          * [김준석] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8934940069 나는 아직 어른이 되려면 멀었다]
          * [김수경] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8955614101 왜 사람들은 이상한 것을 믿는가]
          * [서지혜] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8988964373 작심후 3일]
          * [강소현] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8984314307 1등만 기억하는 더러운 세상]
          * [김수경] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8986509814 우리말 달인]
          * [강소현] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=896330020X 중독의 이해와 상담의 실제]
          * [정의정] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8956604231 꿈의 도시]
          * [김준석] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8952723147 나니아 연대기]
          * [강소현] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=890110511X 더 박스]
          * [권순의] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8937831090 GO] (가네시로 가즈키)
          * 이와 관련해서 외국 음악이랑 외국 영화에 나오는 한국에 대해 찾아보려 했는데요,, 급 귀차니즘 때문에 외국 음악에 나오는 한국 관련된 것만 찾았다는...; 뭐,, 그래서 찾은 것이 Gary Moore의 Murder in the skies 라는 노래인데, 이 노래는 1983년 9월 1일에 뉴욕에서 출발한 한국행 비행기가 소련의 영공에 침범 했나(? -_-;; 죄송;;) 그래서 소련의 전투기가 Kal기를 격추시키는 일이 발생하였는데, 그것을 내용으로 소련의 만행으로 무고한 사람들이 죽음을 당했다는 것을 비판한 노래라 소개 했었고, 또 하나 찾아봤었던게 Deftones의 Korea라는 노래인데... 알고보니까 그냥 노래 내용이 어떤 소녀에 대한 이야기인데 그 소녀의 이름이 한국인 성과 비슷해서 그냥 그렇게 썻다고 해서 패스했습니다.
          * [강소현] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8937831090 GO] (가네시로 가즈키)
          * [송지원] - 선물 The Present
          * [권순의] - [http://book.interpark.com/meet/webzinePapa.do?_method=intvDetail&sc.mreviewNo=26730&bkid1=webzin&bkid2=main&bkid3=flashBan&bkid4=004 고구려] (김진명)
          * [강소현] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=899006225X 수집이야기]
          * [강소현] - '''[http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8990984610 자존감]'''
          * [김태진] - 이번주도 어려운(아마 내일 무슨 책을 읽었는가 정모에서 물어본다면 대답하지 못할..) 책 제목이네요. 음.. 책읽으면서 느낀 결론은, 아 영어 공부 해야지 -_- 였습니다. 1년간 반쯤 손 놓고 있었더니 Eng2에서도 EnglishClinic에서도 말이 제대로 안나오는군요. 흠..
  • 2012년독서모임 . . . . 1 match
          * [권순의] - Fault Line
          * [박한기] - The Goal
          * [권순의] - 오랜만에 시작하는군요. Fault Line은 보이지 않는 균열이 세계 경제를 위협한다는 내용으로 지표면에서 단층면이 접하는 선인 단층선이 Fault Line인데 그 곳에서 지진이 발생한다는 것 때문에 따 왔다고 하더군요. 그래서 과거 시행했던 정책이나 여러 사건들을 통해 현재의 경제가 어떠한 상황에 이르게 되었는지에 대해서 서술한 책입니다. 사실 무지 재미 없습니다. -_- 읽은지 꽤 됬는데 눈에 잘 안 들어오고 하다 보니 아직도 다 못 읽었..
  • 2dInDirect3d/Chapter3 . . . . 1 match
          만약 D3D를 쓰는 사람에게 "당신은 왜 D3D를 씁니까?" 라고 물으면, 일반적으로 이런 대답이 나온다. Z-Buffer라던지, 모델, 메시, 버텍스 셰이더와 픽셸세이더, 텍스쳐, 그리고 알파 에 대한 이야기를 한다. 이것은 많은 일을 하는 것처럼 보인다. 몇몇을 제외하면 이런 것들은 다음의 커다란 두 목적의 부가적인 것이다. 그 두가지란 Geometry Transformation과 Polygon Rendering이다. 간단히 말해서 D3D의 교묘한 점 처리와 삼각형 그리기라는 것이다. 물론 저것만으로 모두 설명할 수는 없지만, 저 간단한 것을 마음속에 품는다면 혼란스러운 일은 줄어들 것이다.
         RHW : Reciprocal of the homogenous W coordinate
         Blending weights : 블랜딩 매트릭스
         Vertex point size : 버텍스의 크기 (포인트스프라이트에서 사용한다.)
         Texture coordinates
         #define CUSTOM_VERTEX_FVF D3DFVF_XYZ
          SeeAlso : [http://member.hitel.net/~kaswan/feature/3dengine/rhw.htm]
         #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW
         #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_NORMAL
         #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW | D3DFVF_DIFFUSE
          디퓨즈 컬러 다음에 오는 정보이다. 이것도 D3DCOLOR값이다. 이것은 한 점의 "Shininess"를 알려준다.
         #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR
         ["2dInDirect3d"]
  • 2학기파이선스터디/문자열 . . . . 1 match
          1. 인덱싱(Indexing) = [k]
          2. 슬라이싱(Slicing) = [[ s : t ]
          5. 멤버십 데스트(Membership Test) = in
         >>> s = 'i like programing'
         'I LIKE PROGRAMING'
         'i like programing'
         'I like programing' # 첫 문자를 대문자로
         >>> s = 'i like programing, i like swimming'
         >>> s.find('like')
         >>> s.find('my')
         >>> s.rfind('like')
         >>> s.index('like')
         >>> s.index('my')
          File "<pyshell#40>", line 1, in ?
          s.index('my')
         valueError : substring not found in string.index
         >>> ':'.'''join(t)''' # ':' 문자로 결합. 틀리기 쉬우니 주의할것!!
         >>> print '\n'.join(t) # 줄바꾸기로 결합.
          2. 문서 문자열(doucmentation string)을 이용하는 방법
  • 3DStudy_2002 . . . . 1 match
         * ["3DStudy_2002/hs_lecture4"] : Picking, Collision Detection
         * ["3DStudy_2002/hs_lecture5"] : Inverse Kinematics vs Forward Kinematics
  • 3D업종 . . . . 1 match
         http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200503100003
         http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200311100001
         헤더: C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
         dll: C:\WINDOWS\system32
         vc6이나 2003을 쓸 경우, 비슷한 경로에 glut를 복사하고, 프로젝트를 만들때 win32 console로 해서 링커 옵션에 opengl32.lib glu32.lib glut32.lib 파일을 추가합니다.'''
  • 3N 1/김상섭 . . . . 1 match
         4358392 2006-02-24 00:56:30 Accepted 2.207 4360 28565 C++ 100 - The 3n + 1 problem
         #include <iostream>
         #include <vector>
         using namespace std;
         const int Min = 1;
         const int Max = 1000000;
         int table[Max];
          int num;
          int pre_count;
          int i, j, k, count;
          for(i = Min; i < Max; i++)
          if(num > Min && num < Max && table[num] == 0)
          if(num > Min && num < Max && table[num] == 0)
         int main()
          int i, j, k, max_num;
          while(cin >> i >> j)
  • 3N+1/김상섭 . . . . 1 match
         4358392 2006-02-24 00:56:30 Accepted 2.207 4360 28565 C++ 100 - The 3n + 1 problem
         #include <iostream>
         #include <vector>
         using namespace std;
         const int Min = 1;
         const int Max = 1000000;
         int table[Max];
          int num;
          int pre_count;
          int i, j, k, count;
          for(i = Min; i < Max; i++)
          if(num > Min && num < Max && table[num] == 0)
          if(num > Min && num < Max && table[num] == 0)
         int main()
          int i, j, k, max_num;
          while(cin >> i >> j)
  • 3N+1Problem/문보창 . . . . 1 match
         // no100 - The 3n+1 Problem
         #include <iostream>
         using namespace std;
         int findMaxCycle(int a, int b);
         int main()
          int a, b; // 입력되는 두 개의 수
          while (cin >> a >> b)
          int maxCycle = findMaxCycle(a, b); // 최대 사이클
         int findMaxCycle(int a, int b)
          int t;
          int nCycle; // 사이클 길이
          int maxCycle = 0; // 최대 사이클
          int i;
  • 3학년강의교재/2002 . . . . 1 match
          || 이동컴퓨팅 || (원)wireless internet & mobile business || Harvey M. Deitel || DEITEL(?) ||
          || 데이터통신 || The Essential Guide to Wireless Communications Applications || Andy Dornan || Prentice-Hall ||
  • 5인용C++스터디/타이머보충 . . . . 1 match
         Project -> Settings -> Link -> Object/library modules: 에 winmm.lib 추가
         #include <afxwin.h> // MFC core and standard components
         #include <afxext.h> // MFC extensions
         #include <afxdisp.h> // MFC Automation classes
         #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
         #include <afxcmn.h> // MFC support for Windows Common Controls
         #include <mmsystem.h>
         //{{AFX_INSERT_LOCATION}}
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         void CALLBACK TimerProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
         int CMMTimerView::OnCreate(LPCREATESTRUCT lpCreateStruct)
         BEGIN_MESSAGE_MAP(CMMTimerView, CView)
  • AI세미나 . . . . 1 match
         Artificial Intelligence (인공지능)에 대한 세미나.
         http://www.math.umn.edu/~wittman/faces/main.html - Neural Network를 사용하여 사람의 얼굴 인식.
  • AKnight'sJourney . . . . 1 match
         === Sample Input ===
  • AM/AboutMFC . . . . 1 match
         --NeoCoin
         F12로 따라가는 것은 한계가 있습니다.(제가 F12 기능 자체를 몰랐기도 하지만, F12는 단순 검색에 의존하는 면이 강해서 검색 불가거나 Template을 도배한 7.0이후 부터 복수로 결과가 튀어 나올때가 많죠. ) 그래서 MFC프로그래밍을 할때 하나의 새로운 프로젝트를 열어 놓고 라이브러리 서치용으로 사용합니다. Include와 Library 디렉토리의 모든 MFC관련 자료를 통째로 복사해 소스와 헤더를 정리해 프로젝트에 넣어 버립니다. 그렇게 해놓으면 class 창에서 찾아가기 용이하게 바뀝니다. 모든 파일 전체 검색 역시 쉽게 할수 있습니다.
         --NeoCoin
         그런데요. C# 관련해서 프로그래밍 프로젝트는 없어요? Windows플랫폼이라면, 일반 어플리케이션은 C# 뿐만아니라, Embeded 까지 .NET 계열이 맡게 될텐데 말이죠 :) --NeoCoin
  • API . . . . 1 match
         #Redirect ApplicationProgrammingInterface
  • APlusProject . . . . 1 match
         Upload:APP_MeetingRecord_Draft.zip - 회의록 초안입니다.
         Upload:APP_MeetingRecord_0607.zip - 6월 7일까지 회의록입니다. -- 으흐흐 이것도 QA검사 끝
         ExtremeProgrammingInstallled - XP 입문서. 한서 있음. PL 필독.
         Refactoring - Refactoring의 바이블. 한서 있음. Eng 필독.
  • AVG-GCC . . . . 1 match
          --help Display this information'''도움말'''[[BR]]
          --target-help Display target specific command line options[[BR]]
          (Use '-v --help' to display command line options of sub-processes)[[BR]]
          -dumpspecs Display all of the built in spec strings[[BR]]
          -dumpversion Display the version of the compiler'''컴파일러 버전'''[[BR]]
          -dumpmachine Display the compiler's target processor[[BR]]
          -print-search-dirs Display the directories in the compiler's search path[[BR]]
          -print-libgcc-file-name Display the name of the compiler's companion library[[BR]]
          -print-file-name=<lib> Display the full path to library <lib>[[BR]]
          -print-prog-name=<prog> Display the full path to compiler component <prog>[[BR]]
          -print-multi-directory Display the root directory for versions of libgcc[[BR]]
          -print-multi-lib Display the mapping between command line options and[[BR]]
          -Wa,<options> Pass comma-separated <options> on to the assembler [[BR]]
          -Wp,<options> Pass comma-separated <options> on to the preprocessor[[BR]]
          -Wl,<options> Pass comma-separated <options> on to the linker[[BR]]
          -Xlinker <arg> Pass <arg> on to the linker[[BR]]
          -save-temps Do not delete intermediate files[[BR]]
          -pipe Use pipes rather than intermediate files[[BR]]
          -time Time the execution of each subprocess[[BR]]
          -specs=<file> Override builtin specs with the contents of <file>[[BR]]
  • AcceleratedC++/Chapter13 . . . . 1 match
         = Chapter 13 Using inheritance and dynamic binding =
         == 13.1 Inheritance ==
         '''상속(inheritance)'''
          std::string name() const;
          std::string n;
          double midterm, final;
         class Grad:public Core { // 구현(implementation)의 일부가 아닌 인터페이스(interface)의 일부로서 상속받는다는 것을 나타냄.
          double thesis; // 논문관련 점수를 저장하는 멤버변수
         Grad 클래스는 Core로 부터 파생되었다(Derived from), 상속받았다(inherits from), 혹은 Core는 Grad의 base class 이다 라는 표현을 사용한다.
          std::string name() const;
          double midterm, final;
          std::string n;
         string Core::name() const { return n; }
          return ::grade(midterm. final, homework);
         istream& Core::read_common(istream& in) {
          in>>n>>midterm>>final;
          return in;
         istream& Core::read(istream& in) {
          read_common(in);
          read_hw(in, homework);
  • AcceleratedC++/Chapter3 . . . . 1 match
         = Chapter 3 Working with batches of data =
         == 3.1 Computing student grades ==
         #include <iostream>
         #include <iomanip>
         #include <string>
         using std::cin;
         using std::setprecision;
         using std::streamsize;
         using std::cout;
         using std::string;
         using std::endl;
         int main() {
          // ask for and read the students's name
          string name;
          cin >> name;
          const string greeting = "Hello, " + name + "!";
          // ask for and read the midterm and final grades
          cout << "Please enter your midterm and final exam grades: ";
          double midterm, final;
          cin >> midterm >> final;
  • AcceleratedC++/Chapter4 . . . . 1 match
         = Chapter 4 Organizing programs and data =
          == 4.1 Organizing computations ==
          cout << "Your final grade is " << setprecision(3)
          << 0.2 * midterm + 0.4 * final + 0.4 * median
         double grade(double midterm, double final, double homework)
          return 0.2 * midterm + 0.4 * final + 0.4 * homework;
         int main()
          cout << "Your final grade is " << setprecision(3)
          << grade(midterm, final, sum / count)
          === 4.1.1. Finding medians ===
          throw domain_error("median of an empty vector.");
          sort(vec.begin(), vec.end());
          === 4.1.2 Reimplementing out grading policy ===
         double grade(double midterm, double final, const vector<double>& hw)
          throw domain_error("student has done no homework");
          return grade(midterm, final, median(hw));
          * grade() function : 우리는 아까 grade라는 함수를 만들었었다. 그런데 이번에 이름은 같으면서 parameter는 조금 다른 grade()를 또 만들었다. 이런게 가능한가? 가능하다. 이러한 것을 함수의 overloading이라고 한다. 함수 호출할때 어떤게 호출될까는 따라가는 parameter lists에 의해 결정된다.
          === 4.1.3 Reading homework grades ===
         istream& read_hw(istream& in, vector<double>& hw)
          while(in >> x) // 차차 살펴볼테지만 이건 잘못되었다.
  • AcceleratedC++/Chapter9 . . . . 1 match
         = Chapter 9 Defining new types =
         || 기본 타입 || char, int, double 등 기본언어의 일부 ||
         || 클래스 타입 || string, vector, istream 등 기본언어를 가지고 구현된 타입 ||
         == 9.1 Student_info revisited ==
         4.2.1절 Student_info 구조체를 다루는 함수를 작성하고, 이를 한개의 헤더파일로 통합을 하는 것은 일관된 방법을 제공하지 않기 때문에 문제가 발생한다.
         struct Student_info {
          std::string name;
          double midterm, final;
         프로그래머는 구조체를 다루기 위해서 구조체의 각 멤버를 다루는 함수를 이용해야한다. (Student_info 를 인자로 갖는 함수는 없기 때문에)
         '''왜 using-선언문을 사용하지 않는가?'''
         string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
          '''상기의 구조체안에 Student_info 를 다룰 수 있는 멤버함수를 추가한 것'''
         struct Student_info {
          std::string name;
          double midterm, final;
          * s:Student_info 라면 멤버함수를 호출하기 위해서는 s.read(cin), s.grade() 와 같이 함수를 사용하면서 그 함수가 속해있는 객체를 지정해야함. 암묵적으로 특정객체가 그 함수의 인자로 전달되어 그 객체의 데이터로 접근이 가능하게 된다.
         istream & Student_info::read(istream& in)
          in>>name>>midterm>>final;
          read_hw(in, homework);
          return in;
  • ActionMarket . . . . 1 match
         moinmoin 의 Action 들 관련. Action은 Macro와는 달리 Show, Edit, Delete, Diff, Info (우측 상단 아이콘들 기능) 등 해당 페이지에 가하는 행위를 말합니다.
         http://purl.net/wiki/moin/ActionMarket 를 참조하세요.
  • AdventuresInMoving:PartIV/문보창 . . . . 1 match
         // 10201 - Adventures in Moving: Part IV
         #include <iostream>
         using namespace std;
         //#include <fstream>
         //fstream cin("in.txt");
         #define MAX_OIL 200
         #define MAX_SIZE 101
         #define MAX_NUM 1000000000
          int length;
          int price;
         static int totalLength; /* 워털루에서 대도시까지의 거리 */
         static int numStation; /* 주유소 수 */
         static int d[2][MAX_OIL+1]; /* 다이나믹 테이블 */
         inline
         int getDistance(int i)
         void input()
          cin >> totalLength;
          cin.get();
          while (cin.peek() != EOF && cin.peek() != '\n')
          cin >> station[numStation].length >> station[numStation].price;
  • Algorithm/DynamicProgramming . . . . 1 match
         http://en.wikipedia.org/wiki/Dynamic_programming
         Introduction To Algorithm 에도 이에 대한 설명이 있습니다.
         == Optimal Binary Search Tree ==
         [http://linneus20.ethz.ch:8080/binary.html]
  • AnalyzeMary . . . . 1 match
         주변에서 남들과 비슷하게 일을 하는 듯 하면서 늘 더 나은 성과를 보이는 사람들이 있다. 대부분은 "메리에겐 뭔가 특별한 것이 있다"(There is something about Mary) 수준의 감탄사를 외치는 데에서 끝난다. 그러면서 나는 왜 그들처럼 될 수 없을까 한탄하고, 곧 까맣게 잊는다.
         NeoCoin은 02년도 기말 시험에서 너무나 시간이 없게되는 상황을 맞이 하였다. 학교 출발까지 15분, 통학 시간 1:30 분 남은 상태에서 밥먹으면서 교수님에 성향 대하여 AnalyzeMary를 하고 15분은 강의 노트에 대한 AnalyzeMary , 그리고 도착전까지 열심히 외웠다. 도착 직전까지 외운 내용 조차 시험에 그대로 출제되어 있었다. 결국, 시험의 1문제의 부분적것 외에 전부 정답 작성이 가능했다. 여태까지 살아오면서, 최고의 효율이란 무엇인가를 느낄수 있었다. --NeoCoin
  • AngularJS . . . . 1 match
         <h3 ng-init="todos=[]"> Topic </h3>
          <li ng-repeat="todo in todos" class="done-{{todo.done}}">
          <input type="checkbox" ng-model="todo.done"/>
          <button ng-click="todos.splice($index,1)">x</button>
          <input type="text" ng-model="test"/>
          <button>Input</button>
  • AppletVSApplication/진영 . . . . 1 match
          * "'''Application'''"은 main()함수를 포함하고 있어서 자기 스스로 실행이 되는 반면에
          * "'''Applet'''"은 main()함수 없이 자기 스스로 실행되지 않고 html에 의해 돌아가는 것 같습니다.
           DeleteMe 그럼 여기에서 html 은 무엇이죠? --NeoCoin
         ["JavaStudyInVacation/진행상황"]
  • Applet포함HTML/상욱 . . . . 1 match
          codebase = "http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_01-windows-i586.cab#Version=1,4,1,1"
          pluginspage = "http://java.sun.com/products/plugin/index.html#download">
         ["JavaStudyInVacation/진행상황"]
  • Applet포함HTML/영동 . . . . 1 match
         * 음... HTML 컨버터로 컨버트하긴 했는데 ftp사용법을 몰라서 계정에 올리는 법을 모르겠네요. 그러한 관계로, 상욱이처럼 파일 내용만 올릴게요. ftp쓰는 법 배워서 링크시킬게요... [http://165.194.17.15/pub/util/WinSCP2.exe WinSCP 2.0 Beta]
          --NeoCoin
         http://java.sun.com/getjava/index.html
         --NeoCoin
          codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_03-win.cab#Version=1,4,0,30">
          pluginspage="http://java.sun.com/products/plugin/index.html#download">
         ["JavaStudyInVacation/진행상황"]
  • Applet포함HTML/진영 . . . . 1 match
         http://nihs.com.ne.kr/temp/NotHelloWorldApplet.html
         // NotHelloWorldApplet.html (컨버트 前)
         <APPLET CODE=" NotHelloWorldApplet.class" WIDTH=300 HEIGHT=300>
         ''C:\j2sdk1.4.1_01\bin\HtmlConverter.exe 로 컨버트''
          '''ex) htmlconverter.exe NotHelloWorldApplet.html'''
         // NotHelloWorldApplet.html (컨버트 後)
          codebase = "http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_01-windows-i586.cab#Version=1,4,1,1"
          <PARAM NAME = CODE VALUE = " NotHelloWorldApplet.class" >
          CODE = " NotHelloWorldApplet.class"
          pluginspage = "http://java.sun.com/products/plugin/index.html#download">
         <APPLET CODE = " NotHelloWorldApplet.class" WIDTH = 300 HEIGHT = 300>
         ["JavaStudyInVacation/진행상황"]
  • ArsDigitaUniversity . . . . 1 match
         학부생 수준의 전산 전공을 일년만에 마칠 수 있을까. 그런 대학이 있다(비록 지금은 펀드 문제로 중단했지만). 인터넷계의 스타 필립 그리스펀과 그의 동료 MIT 교수들이 만든 학교 ArsDigitaUniversity다. (고로, Scheme과 함께 NoSmok:StructureAndInterpretationOfComputerPrograms 를 가르친다)
         자신의 전산학 지식을 전체적으로 정리하거나, 밑바닥부터 새로 공부하고 싶은 사람들에게 많은 참고가 된다 -- 모든 수업이 한 달이면 끝난다. ArsDigitaUniversity의 "하면서 배우는"(learn by doing) 교육 모델(날마다 구체적인 Problem Set이 주어지고 오전에 수업이 끝나면 오후에 Recitation을 하며, 매 주 NoSmok:교육적인시험 을 친다)도 흥미롭다. 모든 수업에 대해 VOD와 문제, 해답, 수업 노트가 제공된다.
          * MIT 박사 과정 타라 수잔의 교수 경험 http://www-math.mit.edu/~tsh/teaching/aduni.html
  • ArtificialIntelligenceClass . . . . 1 match
         Upload:namsang:AI - Prentice Hall - Artificial Intelligence - A Modern Approach - 1995.pdf
         [http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN89-88397-88-6 인공지능 개념및 응용]
         실습 : 팀 프로젝트로 othello Game AI 작성.
          * [http://aima.cs.berkeley.edu/instructors.html 미국대학 시험문제들]
         요새 궁리하는건, othello team 들끼리 OpenSpaceTechnology 로 토론을 하는 시간을 가지는 건 어떨까 하는 생각을 해본다. 다양한 주제들이 나올 수 있을것 같은데.. 작게는 책에서의 knowledge representation 부분을 어떻게 실제 코드로 구현할 것인가부터 시작해서, minimax 나 alpha-beta Cutoff 의 실제 구현 모습, 알고리즘을 좀 더 빠르고 쉬우면서 정확하게 구현하는 방법 (나라면 당연히 스크립트 언어로 먼저 Prototyping 해보기) 등. 이에 대해서 교수님까지 참여하셔서 실제 우리가 당면한 컨텍스트에서부터 시작해서 끌어올려주시면 어떨까 하는 상상을 해보곤 한다.
  • AspectOrientedProgramming . . . . 1 match
         === Introduction ===
          최근 몇 년에 걸쳐 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 절차적 방법론을 거의 완벽히 대체하며 프로그래밍 방법론의 새 주류로 떠오르게 되었다. 객체지향적 방식의 가장 큰 이점 중 하나는 소프트웨어 시스템이 여러 개의 독립된 클래스들의 집합으로 구성된다는 것이다. 이들 각각의 클래스들은 잘 정의된 고유 작업을 수행하게 되고, 그 역할 또한 명백히 정의되어 있다. 객체지향 어플리케이션에서는 어플리케이션이 목표한 동작을 수행하기 위해 이런 클래스들이 서로 유기적으로 협력하게 된다. 하지만 시스템의 어떤 기능들은 특정 한 클래스가 도맡아 처리할 수 없다. 이들은 시스템 전체를 들쑤시며 해당 코드들을 여러 클래스들에 흩뿌려 놓는다. 이런 현상을 횡단적(cross-cutting)이라 표현한다. 분산 어플리케이션에서의 락킹(locking, 동기화) 문제, 예외 처리, 로깅 등이 그 예이다. 물론 필요한 모든 클래스들에 관련 코드를 집어 넣으면 해결될 문제이다. 하지만 이런 행위는 각각의 클래스는 잘 정의된(well-defined) 역할만을 수행한다는 기본 원칙에 위배된다. 이런 상황이 바로 Aspect-Oriented Programming (AOP)이 잉태된 원인이 되었다.
          AOP에서는 aspect라는 새로운 프로그램 구조를 정의해 사용한다. 이는 쉽게 struct, class, interface 등과 같이 특정한 용도의 구조라 생각하면 된다. Aspect 내에는 프로그램의 여러 모듈들에 흩어져 있는 기능(하나의 기능이 여러 모듈에 흩어져 있음을 뜻한다)을 모아 정의하게 된다. 전체적으로, 어플리케이션의 각각의 클래스는 자신에게 주어진 기능만을 수행하고, 추가된 각 aspect들이 횡단적인 행위(기능)들을 모아 처리하며 전체 프로그램을 이루는 형태가 만들어진다.
          먼저 ‘Aspect는 꼭 필요한가?’라는 질문에 답해보자. 물론 그렇지는 않다. 이상에서 언급한 모든 문제들은 aspect 개념 없이 해결될 수 있다. 하지만 aspect는 새롭고 고차원적인 추상 개념을 제공해 소프트웨어 시스템의 설계 및 이해를 보다 쉽게 한다. 소프트웨어 시스템의 규모가 계속 커져감에 따라 “이해(understanding)”의 중요성은 그만큼 부각되고 있다(OOP가 현재처럼 주류로 떠오르는데 있어 가장 중요한 요인 중 하나였다). 따라서 aspect 개념은 분명 가치 있는 도구가 될 것임에 틀림없다.다음의 의문은 ‘Aspect는 객체의 캡슐화 원칙을 거스르지 않느냐?’는 것이다. 결론부터 말하자면 ‘위반한다’ 이다. 하지만 제한된 형태로만 그렇게 한다는데 주목하도록 하자. aspect는 객체의 private 영역까지 접근할 수 있지만, 다른 클래스의 객체 사이의 캡슐화는 해치지 않는다.
         Aspect-Oriented Programming in Java
          AspectJ는 Eclipse 프로젝트라기 보다. Xerox PARC 의 AspectJ 프로젝트의 홈페이지가 옮겨 온것 입니다. 역시 이글이 wegra님이 해석해 놓으신거 였군요. 좀더 많은 내용은 아래의 SisterWiki 를 참고하시고, 관련포럼 비스무리 한데가 http://aosd.net 입니다. --NeoCoin
  • Athena . . . . 1 match
          * Object Programming 수업의 숙제를 위한 페이지입니다
         || http://zeropage.org/~mulli2/Athena/Logo.bmp ||
          DeleteMe 이름은 좋습니다. 하지만 ["Athena"] 라는 이름의 페이지에는 여신 아테나에 대한 정의와 소개가 들어 있는 것이 올바른 것이겠지요. 그래서 ["ProjectPrometheus"], ["ProjectZephyrus"] 라고 한거랍니다. ;; --["neocoin"]
          * 첫 회의 - 프로젝트 이름 결정, 기본 코딩 스타일 결정, 첫 ["PairProgramming"] 호흡
          * Contrast Stretching 작성(20분) - 명훈
          * contrast stretching할때 입력값 받지않는 것으로 수정(20분) - 명훈
          * 2.1 Sampling => 모자이크 이미지
          * 5.6 Posterizing
          * 5.6.2 Thereshold
          * 5.7 Clipping
          * 5.8 Iso-intensity Contouring
          * 5.9 Range- highlighting
          * 5.10 Solize using a Threshold
          * 6.2 Sharpening
          * 6.4 Embossing
          * 6.5 Median Filtering
          * 7.1 Contrast Stretching
  • AwtVSSwing/영동 . . . . 1 match
         = Swing =
          * AWT는 사용하긴 쉽지만 한계가 있다. 롤오버 이미지를 사용하는 등 실제로 많이 쓰는 기능을 AWT로 구현하기 어려우며, 운영체제마다 버그가 생기기 때문에 사용하기 불편하다. Swing은 Top-Level의 컨테이너만을 운영체제의 자원을 사용할 뿐 그 하부에 있는 모든 것은 자바 코드에 의해 만드는 방식을 가진다. 발생하는 버그도 자바 가상머신의 범위 내에서 처리가 가능하다. 게다가 컴포넌트의 모양도 사용자의 입맛에 맞게 맞춰주는 것이 가능하다.
          * javax.swing.*;
         ["JavaStudyInVacation/진행상황"]
  • BarMacro . . . . 1 match
         The statement:
         We use it in conjunction with the [DueDate Macro] like this:
  • BasicJAVA2005/8주차 . . . . 1 match
          - 자료를 주고 받아 보자 : DataInputStream, DataOutputStream
  • BasicJAVA2005/실습2/허아영 . . . . 1 match
         안에꺼는 int-> string 형으로 변환해서
         import javax.swing.*;
          private Container container;
          container = getContentPane();
          container.setLayout(grid1);
          for(int count = 0; count < 25; count++) {
          buttons[count] = new JButton(Integer.toString(count));
          container.add(buttons[count]);
          container.validate();
          public static void main(String[] args) {
  • Basic알고리즘 . . . . 1 match
         {{| " 그래서 우리는 컴퓨터 프로그래밍을 하나의 예술로 생각한다. 그것은 그 안에 세상에 대한 지식이 축적되어 있기 때문이고, 기술(skill) 과 독창성(ingenuity)을 요구하기 때문이고 그리고 아름다움의 대상(objects of beauty)을 창조하기 때문이다. 어렴풋하게나마 자신을 예술가(artist)라고 의식하는 프로그래머는 스스로 하는 일을 진정으로 즐길 것이며, 또한 남보다 더 훌륭한 작품을 내놓을 것이다. |}} - The Art Of Computer Programming(Addison- wesley,1997)
  • BaysianFiltering . . . . 1 match
         그리고 PatternClassification 관련한 여러 알고리즘에도 BayesTheory 를 기본으로 하는게 상당히 많다.
  • Bioinformatics . . . . 1 match
          * 이름 : Bioinformatics
          * 프로젝트 시작동기와 목적 : 본 연구는 차세대 Bio기술에서 컴퓨터 전공자로서 접근할 수 있는 기술인 Bioinformatics에 대한 기초를 닦는 것을 목적으로 한다.
          * 교재 : “Bioinformatics: A practical guide to the analysis of genes and proteins”, Second Edition edited by Baxevanis & Ouellette
         이런 취지에서 NCBI는 sequence-related information에 관한 모델을 만들었다. 그리고 이런 모델을 이용해서 Entrez(data retrieval system)나 GenBank DB(DNA seq.를 저장해둔 DB, 두 가지는 유전자 연구의 중요한 data들이다.)와 같이 소프트웨어나 통합 DB시스템을 가능하게 만들었다.
         GenBank flatfile은 DNA-centered의 보고서이다. DNA중심이라는 것은 어떤 단백질의 유전자 정보를 저장하고 있는 DNA영역이 DNA위의 coding region이라고 불린다. 반대로 대부분의 Protein seq. DB들은 Protein-centered의 관점이며, 이는 단백질과 유전자 사이는 accesion number(유전자를 접근하기위한 DB의 key값) ... 진행중
         National Center for Biotechnology Information 분자 생물 정보를 다루는 국가적인 자료원으로서 설립되었으며, NCBI는 공용 DB를 만들며, 계산에 관한 생물학에 연구를 이끌고 있으며, Genome 자료를 분석하기 위한 software 도구를 개발하고, 생물학 정보를 보급하고 있습니다. - 즉, 인간의 건강과 질병에 영향을 미치는 미세한 과정들을 보다 더 잘 이해하기 위한 모든 활동을 수행
         Established in 1988 as a national resource for molecular biology information, NCBI creates public databases, conducts research in computational biology, develops software tools for analyzing genome data, and disseminates biomedical information - all for the better understanding of molecular processes affecting human health and disease.
         Entrez는 통합 데이터베이스 retrieval 시스템으로서 DNA, Protein, genome mapping, population set, Protein structure, 문헌 검색이 가능하다. Entrez에서 Sequence, 특히 Protein Sequence는 GenBank protein translation, PIR, PDB, RefSeq를 포함한 다양한 DB들에 있는 서열을 검색할 수 있다.
         DNA에 존재하는 4종류의 염기는 아데닌(adenine), 구아닌(guanine), 티민(thymine), 시토신(cytosine), 우라실(uracil)이다. 이들 중에서 피리미딘(pyrimidine)이라고 부르는 thymine, cytosine, uracil은 질소와 탄소로 구성된 6각형의 고리로 되어 있다. 퓨린(purine)이라고 부르는 adenine, guanine은 더 복잡하여, 질소와 탄소로 구성된 6각형과 5각형의 이중 고리로 이루어진다. nucleotide에서 이들 염기들은 deoxyribose의 1번 탄소에 공유결합으로 연결되어 있으며, 인산기는 5번 탄소에 역시 공유결합으로 연결되어 있다. adenine, guanine, cytosine, thymine, uracil은 각각 A, G, C, T,U 로 표기된다.<그림 1>
         유전 형질을 말하며 유전에 관여하는 특정 물질이다. Gene의 모임이 Genome이다. 또한 이 Gene는 DNA에 그 내용이 암호화 되어 있다. 이미 알고 있을지도 모르겠지만, Gene이라는 것은 DNA의 염기 배열이다. 이 염기 배열(base sequence)이 어떤 과정을 통해서 대응되는 순서로 아미노산(amino acid)끼리의 peptide결합을 하여 단백질로 나타는 것을 유전 형질 발현이라고 한다.
         그림 1을 참조하면 DNA는 2중 나선형 구조로 되어있다. 이것이 세포 분열 과정에서 DNA에 유전암호를 복사한 mRNA로 바뀌며 이 mRNA가 Ribosome에 들어가면 tRNA는 mRNA에 담겨있는 DNA유전암호를 분석하여서 대응되는 amino acid를 가져온다. 이런 과정이 반복되고, amino acid사이에는 peptide결합을 이루면서 이는 단백질로 형질 발현이 된다. -- 진행중..
         '''Bioinformatics를 공부하려는 사람들을 위해'''
         절대 컴퓨터 지식만으로 승부걸려고 하지 말아야 할 것 입니다. 컴퓨터 지식만으로는 정말 기술자 수준 밖에 되지 못합니다. 그쪽 지식이 필요하다고 해도 이건 기술적 지식이라기보다는 과학, 즉, 전산학(Computer Science)의 지식이 필요합니다. 그리고 Bioinformatics를 제대로 '''공부'''하려면 컴퓨터 분야를 빼고도 '''최소한''' 생물학 개론, 분자 생물학, 생화학, 유전학, 통계학 개론, 확률론, 다변량 통계학, 미적분을 알아야 합니다. 이런 것을 모르고 뛰어들게 되면 가장자리만 맴돌게 됩니다. 국내에서 Bioinformatics를 하려는 대부분의 전산학과 교수님들이 이 부류에 속한다는 점이 서글픈 사실이죠.
         제대로 된 안내를 받으려면, 원세연 박사님의 사이트를 추천합니다. http://www.bioinformatics.pe.kr/ -- 김창준
  • BoaConstructor . . . . 1 match
         http://sourceforge.net/potm/potm-2003-08.php 2003년 8월 Project of the month 에 뽑혔다. CVS 최신버전인 0.26에서는 BicycleRepairMan 이 포함되었다.
          1. 한글 패치 필요 - 이건 Scintilla 의 문제일듯.
          * Control 상속, 새 Control 만드는 과정을 아직 툴 차원에선 지원하지 않는다. MFC GUI Programming 할때 많이 쓰는데. UI class 들 중복제거를 위해서라도. -_a 하긴 이건 좀 무리한 요구인가 -_-;
         GUI 플밍은 다시금 느끼지만, RAD 툴 없으면 노가다가 너무 많다. -_-; 차라리 GUI 코드는 더럽게 놔두고 툴로만 다루고, 코드상에서는 가능한 한 GUI 부분 객체와는 interface 로만 대화하는 것이 좋겠다. 어디선가 본 것 같다. Code Generator 로 작성된 코드는 가능한한 건드리지 말라는..~ (Abstraction 이 제너레이팅 툴에서 이루어지기 때문일 것 같다.)
          5. 정식 버전은 TDD 로 다시 DoItAgainToLearn. WingIDE + VIM 사용. (BRM 을 VIM 에 붙여놓다보니. 그리고 WingIDE 의 경우 Python IDE 중 Intelli Sense 기능이 가장 잘 구현되어있다.)
         UnitTest 가 있는 것만으로도 언제든지 리팩토링할 수 있다는 믿음이 있다면..~ 혼자서 프로토타입 플밍 할때는 그냥 StepwiseRefinement & UnitTest 조합도 괜찮은 것 같다. 빨리 기능을 얻은뒤 기능들 보고 중간에 CRC 해가면서 유용할만한 Object들을 추출해나가는 것도. 언제든지 Object 뽑아낼 자신이 있으니까.
  • BusSimulation/영창 . . . . 1 match
         = Info =
         [[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius&rev=7", "최초 동작 버전")]]
         [[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius&rev=8", "station, bus 객체의 people의 승탑 메소드 구현")]]
         [[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius", "탑승하차상황 가정 버전")]]
          왜 OOP적 접근법이 필요한지 약간 감이 잡힌다고 해야할까? 이런 현실의 내용을 simulation 하기에는 structured programming의 접근법으로는 참 다루기가 힘든점들이 많을 것 같다. - [eternalbleu]
  • Button/상욱 . . . . 1 match
         import javax.swing.*;
          public static void main(String[] args){
         ["JavaStudyInVacation/진행상황"]
  • Button/진영 . . . . 1 match
         import javax.swing.*;
          repaint();
          addWindowListener(new WindowAdapter()
          public void windowClosing(WindowEvent e)
          Container contentPane = getContentPane();
          public static void main(String[] args)
         ["JavaStudyInVacation/진행상황"]
  • C++Analysis . . . . 1 match
          * The C++ Programming Language Special Edition
  • C++Seminar03/SimpleCurriculum . . . . 1 match
         [C++Seminar03]에서 진행하게 될 대강의 커리큘럼. 각 주에 하면 좋을것 같은 내용들을 간단하게 정리해둡니다. 페이지 크기가 커지면, 하위페이지로 [문서구조조정]을 할 것입니다.
          ===== Opening Lecture =====
          * 강의주제 : {{{~cpp The Little Man Computer}}}, 프로그래밍 개론
          ===== Main Study =====
          ==== Opening Lecture ====
          ==== Main Study ====
         See also [C++Seminar03/SimpleCurriculum]
  • C99표준에추가된C언어의엄청좋은기능 . . . . 1 match
         #include <stdio.h>
         int main()
         int n;
         printf("Array Size? ");
         int x[n];
         int i;
         printf("%d ", x[i]);
         printf("\n");
          [http://www-128.ibm.com/developerworks/linux/library/l-c99.html?ca=dgr-lnxw07UsingC99 Open source development using C99]
          The new variable-length array (VLA) feature is partially available. Simple VLAs will work. However, this is a pure coincidence; in fact, GNU C has its own variable-length array support. As a result, while simple code using variable-length arrays will work, a lot of code will run into the differences between the older GNU C support for VLAs and the C99 definition. Declare arrays whose length is a local variable, but don't try to go much further.
  • CCNA/2013스터디 . . . . 1 match
          * [http://library.cau.ac.kr/search/DetailView.ax?sid=1&cid=365128, Cisco Networking Academy Program: First-Year Companion Guide]
          || 2계층 || 데이터 링크 계층 (Data Link Layer) || 물리적 전송을 위한 미디어 지원 ||
          - (속도)(signaling 방법)(전송 매체 타입)으로 표기한다.
          - ex) 10Base5 : 속도가 10Mbps, Baseband 방식으로 signaling을 하고 전송 매체는 동축 케이블이다.
          - ex) 100BaseFX : 속도가 100Mbps, Baseband 방식으로 signaling을 하고 전송 매체는 광케이블이다.
          - 속도는 10, 100, 1000 등이 있고 signaling 방법에는 Baseband, Broadband 등이 있다. 전송 매체는 동축 케이블(5...), UTP, STP, 광케이블 등이 있다.
          * PPP(Point-to-Point Protocol) 개요
          * '''PPP(Point-to-Point Protocol) 구조와 설정'''
          * 하위 계층: LCP(Link Control Protocol) WAN 구간의 데이터 링크 연결과 제어
          * '''PPP(Point-to-Point Protocol) 동작과 설정'''
          * 링크는 언제나 다운 상태 -> 링크 업 -> Establishing -> LCP 상태 Open -> Authenticating -> 인증 성공 -> 링크 업 (실패하면 다운 -> Terminating -> 재 접속)
          || 2 || router#conf t || Config Terminal.. Configuration 모드로 이동 ||
          || 5 || Router_A(config)#interface serial 0 || 어느 인터페이스를 통해 라우터B와 연결할 것인지 ||
          || 7 || Router_Aconfig-if)#ppp authentication chap || 암호화(인증) 기능 ||
          || 8 || Router_Aconfig-if)#ip address 10.0.0.1 255.255.255.0 || Serial 0 interface의 ip 주소는 10.0.0.1 서브넷마스크는 255 ||
          * debug PPP authentication: PPP의 인증과 관련된 PAP, CHAP
          || msec 타임스탬프 || 인터페이스 || 상태 || In/Out || 메시지 || ID 필드 || 길이 ||
          * 참조점 (Reference point, 장비와 장비 연결 부분을 가리킴)
          - TE1(Terminal Equipment type 1) : ISDN 단말기(ISDN 전화기).
          - TA(Terminal Adaptor) : ISDN을 지원하지 않는 단말기(전화기, PC, FAX)를 ISDN에 접속 가능하도록 연결시켜주는 장비.
  • CNight2011/권순의 . . . . 1 match
         == Round 2 - Linked List ==
          * Linked List에서의 삽입과 삭제
          * Linked List의 정의
          * Linked List의 단점
          * Linked List의 Interface
          * Linked List의 알고리즘과 구현 설명
  • CNight2011/송지원 . . . . 1 match
         == Round 2 - Linked List ==
          * Linked List의 정의 - [권순의]
          * Linked List ADT - [윤종하]
          * Linked List Interface Code - [송지원]
         == Round 3 - 야 to the 식 ==
  • COM/DCOMPrimerPlus . . . . 1 match
         = Introduction =
  • CPPStudy_2005_1/STL성적처리_1 . . . . 1 match
         = InputText =
         #include <iostream>
         #include <string>
         #include <fstream>
         #include <vector>
         #include <algorithm>
         #include <numeric>
         using namespace std;
         #define SUBJECT_SIZE 4
         struct Student_info {
          string name;
          vector<int> subjects;
          int total;
         double Sum(Student_info &s);
         void totalSum(vector<Student_info> &students);
         double average(Student_info &s);
         void totalAverage(vector<Student_info> &students);
         bool totalCompare(const Student_info &s1, const Student_info &s2);
         void sortBySum(vector<Student_info> &students);
         ostream& displayScores(ostream &out, const vector<Student_info> &students);
  • CPlusPlus_ . . . . 1 match
         == Index ==
  • CVS . . . . 1 match
          * [http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/ Yet another CVS tutorial (a little old, but nice)]
          * [http://www.cs.utah.edu/dept/old/texinfo/cvs/FAQ.txt An old but very useful FAQ about CVS]
          * http://www.chonga.pe.kr/document/programming/cvs/index.php 해당 사이트에서 제작한 한글 Reference
         == For Win ==
          * [WinCVS]
         설치는 간단하다. install script 를 이용, CGI 가 돌아가는 경로에 설치한뒤, viewcvs.conf 에서 CVS ROOT 를 설정해주면 끝.
          * 현재 ZeroPage 에서는 CVS 서비스를 하고 있다. http://zeropage.org/viewcvs/cgi/viewcvs.cgi 또는 ZeroPage 홈페이지의 왼쪽 메뉴 참조. 웹 클라이언트로서 viewcvs 를 이용중이다. 일반 CVS Client 로서는 Windows 플랫폼에서는 [TortoiseCVS](소위 '터틀'로 불린다.) 를 강력추천! 탐색기의 오른쪽 버튼과 연동되어 아주 편리하다.
          * ZeroPage의 CVS 계정을 원하는 회원은 서버관리자(["neocoin"])에게 연락 바람 자세한 내용은 홈페이지 왼쪽 메뉴 참고
         || ["CVS/길동씨의CVS사용기ForLocal"] || WinCVS 설치 전제, CVS를 처음 접하는 사람이라면, Local을 이용해서 감을 잡으세요. ||
         || ["CVS/길동씨의CVS사용기ForRemote"] || WinCVS 설치 전제 ZeroPage CVS를 ||
         === Trouble shooting ===
         This problem is quite common apparently... <the problem>snip > I've been trying to use CVS with the win-cvs client without much > success. I managed to import a module but when I try to do a > checkout I get the following error message: > > cvs checkout chargT > > cvs server: cannot open /root/.cvsignore: Permission denied > > cvs [server aborted]: can't chdir(/root): Permission denied > > I'm using the cvs supplied with RedHat 6.1 - cvs 1.10.6 /snip</the> ---------
         It is not actually a bug. What you need to do is to invoke your pserver with a clean environment using 'env'. My entry in /etc/inetd.conf looks like this:
         cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/env - /usr/bin/cvs -f --allow-root=/usr/local/cvsroot pserver
         where '/usr/local/cvsroot' is the path of my repository - replace this with yours.
         Apparently, the problem is actually with Linux - daemons invoked through inetd should not strictly have any associated environment. In Linux they get one, and in the error case, it is getting some phoney root environment.
         Robert Cragie Design Engineer, Jennic Ltd. Sheffield UK
         버전 관리 프로그램 몇가지 : IBM의 CLEAR/CASTER, AT&T의 SCCS, CMU(카네기 멜론 대학)의 SDC, DEC의 CMS, IBM Rational의 {{{~cpp ClearCase}}}, MS의 {{{~cpp Visual SourceSafe}}}, [Perforce], SubVersion, AlianBrain
         GameCodingComplete 왈,
         돈이 남아 도는 프로젝트 경우 {{{~cpp ClearCase}}}를 추천하고, 오픈 소스는 돈안드는 CVS,SubVersion 을 추천하고, 게임업체들은 적절한 가격과 성능인 AlianBrain을 추천한다. Visual SourceSafe는 쓰지 말라, MS와 함께 개발한 적이 있는데 MS내에서도 자체 버전관리 툴을 이용한다.
  • CVS/길동씨의CVS사용기ForLocal . . . . 1 match
         SET PATH=%PATH%;"C:Program FilesGNUWinCvs 1.3"
          * in Windows
          * in Bash Shell ( 프롬프트에서 직접 실행 해야 적용됨 )
         C:User>cvs init
         cvs init
         cvs -d c:CVSLocal init // -d 태그를 설정안하면 환경변수 CVSROOT의 값을 가져와 쓴다. 모든 cvs사용에 해당한다.
         C:UserHelloJava>cvs import -m "Hello Java를 출력하는 모듈" HelloJava zeropage neocoin
         cvs checkout: Updating HelloJava
          public static void main(String[] args){
          System.out.println("Hello Java");
         cvs add: scheduling file `HelloJava.java' for addition
         Checking in HelloJava.java;
         initial revision: 1.1
         cvs checkout: Updating HelloJava
          String helloScript = "Hello Java";
          System.out.println(helloScript);
          public static void main(String[] args){
         Checking in HelloJava.java;
         Working file: HelloJava.java
         date: 2002/07/31 15:36:21; author: Administrator; state: Exp; lines: +6 -1
  • C_Tip . . . . 1 match
         == Index ==
  • CarmichaelNumbers/조현태 . . . . 1 match
         #include <stdio.h>
         #include <iostream>
         const int MINIMUM=2;
         const int MAXIMUM=65000;
         int Carmichael(int);
         int Sosu(int);
         void main()
          printf("숫자를 입력해 주세요.\n");
          int number=-1;
          int answer=0;
          while ((0!=number)&&(number<MINIMUM || MAXIMUM<number))
          printf("%d is normal.\n",number);
          printf("The number %d is a Carmichael number.\n",number);
         int Carmichael(int number)
          for (register int i=2; i<number; ++i)
          unsigned int a=1;
          for (register int j=0; j<number; ++j)
         int Sosu(int number)
          int *log_number=(int*)malloc((number+2)*sizeof(int));
          int gab;
  • CauGlobal . . . . 1 match
          * [CauGlobal/Interview]
  • CauGlobal/Interview . . . . 1 match
          * 수업이 한국에서와의 다른점은? ( ex Theory 위주인지? Practical 위주인지? )
  • CauGlobal/ToDo . . . . 1 match
          * 인터뷰 정리 - [CauGlobal/Interview]
          * Contact Point 별
          * [http://www.dvuser.co.kr/info/sony/dcr-dvd201_review.htm 디지털 캠코더]
  • CheckTheCheck/문보창 . . . . 1 match
         King의 check상태를 좀더 쉽게 알 수 있으려면 어떻게 해야 할까?
         // no10196 - Check the Check
         #include <iostream>
         #include <cstring>
         using namespace std;
         const int MAX_CASE = 300;
         const int TIED = -1;
         const int BLACK = 0;
         const int WHITE = 1;
         inline void eatline() { while(cin.get() != '\n') continue; };
         int WhoIsWin();
         int Pawn(int row, int col, char enemy);
         int Rook(int row, int col, char enemy);
         int Bishop(int row, int col, char enemy);
         int Queen(int row, int col, char enemy);
         int Knight(int row, int col, char enemy);
         int main()
          int win[MAX_CASE];
          int nCase = 0;
          win[nCase++] = WhoIsWin();
  • ClearType . . . . 1 match
          * [http://www.microsoft.com/typography/ClearTypeInfo.mspx ClearType기술 홈페이지] - 윈도우 적용 방법이나 기술에대한 자세한 소개.
          * 특허문제로 Adove, Linux, Apple 들이 각 다른 방식의 벡터 드로잉 방법을 가지고 있다고 한다.
  • ClipMacro . . . . 1 match
         [[Clip(linux)]]
         [[Clip(linux)]]
         잘 안되네요. 윈XP pro !SP2 , Internet Explore 6.0 !SP2 에서 테스트 했습니다. paste와 copy는 별 반응없고, Unload 괜히 눌렀다가 위의 그림만 지웠네요 ^^;
         익스플로러 XP프로 SP2에서 잘 되는군요. print screen키를 누르신다음에 paste해보세요 -- Anonymous [[DateTime(2005-03-31T16:55:09)]]
  • CompilerTheory/ManBoyTest . . . . 1 match
          begin real procedure A(k, x1, x2, x3, x4, x5);
          value k; integer k;
          begin real procedure B;
          begin k := k - 1;
          if k <= 0 then A := x4 + x5 else B
         Donald Knuth 가 Algol 60의 구현 정도를 판변하기위해서 만든 프로그램. 테스트의 목적은 올바르게 구현된 scoping rule, call-by-name의 구현 정도를 판별해서 boys(algol 60 구현물)들중에서 men (쓸만한 놈)을 가려내는 용도로 고안되었습니다.
         [CompilerTheory]
  • ComputerGraphicsClass/Exam2004_1 . . . . 1 match
         Scanline Filling - 각 부분에 대해 어떤 일들이 일어나는지 쓰시오
         Homogeneous Coordination 에 대해 쓰고 왜 Computer Graphics 분야에서 많이 이용되는지 쓰시오
         Anti Aliasing : 배경의 명도가 90이고 칠해진 부분은 0 이 된다. Sub Pixel 은 9 일때 각 부분에 대한 명도값을 구하시오
         Clipping 알고리즘중 Liang-Barsky 를 설명하시고 Cohen-Sutherland 알고리즘보다 성능이 뛰어난 이유에 대해 쓰시오.
         3D Graphic Pipeline 을 그리고 각 부분의 transformation 에 대해 설명하시오
         Projection 에서 View Volume 안에 있는 물체에 대한 View Plane 이, Orthogonal Projection 과 Perspective Projection 에서 결과물에 어떠한 차이를 보이게 하는지 쓰시오.
  • ComputerNetworkClass . . . . 1 match
         수업내용: 데이터 통신에서 배우는 것보다 한단계 상위 레이어. IP (Internet Protocol), TCP,UDP, Routing 의 원리, Subnet Mask, Tunneling 등의 개념 등에 대해 자세하게 배운다.
         수업을 듣기전에 TCP/IP socket programming 에 대한 입문서를 보고 듣기를 권하며, 수업의 진도를 따라가면서 TCP/IP 서적을 다시 한번 보거나 중급서적을 읽기 시작하면 아주 도움이 많이 될 것이라 생각한다.
         = examination =
  • ComputerNetworkClass/Exam2006_2 . . . . 1 match
         인터넷 보안 관련된 문제에서 문제로 출제 될 만하다고 생각했던 부분인 Authencation Protocol (3-way-handshake, keberos, using RSA)에 대한 내용역시 미출제되었음. 덕분에 시험 난이도는 낮아졌지만, PEM 의 구조에 대한 설명이 들어갔기 때문에 따로 관심을 가지고 공부한 사람이 아니면 약간 어려웠을지도 모르겠음.
         secrecy(interception -> DES, RSA)
         authenticate(fabrication -> 3-way handshake, keberos, using RSA)
         integrigy(modification -> keyed MD5)
         availability(interruption, DoS, Jamming -> Firewall, Proxy-base Network System)에 대한 설명과 수업때 배운 보안기술들을 분류하고 설명하는 문제임.
          playback point, playback time 에 대한 이해를 묻는 문제임. adaptive playback 에대한 문제도 출제되었음.
          Integrated Service(flow-based), Differentiated Service(service-based) 에대한 전반적인 이해를 하는 문제. 해당 기법에 WFQ를 적용하는 방법에 대한 이해를 묻는 문제로 약간 응용해서 적으란 것으로 보임. 책에 DS에 대한 설명은 WRED, RIO에 대한 설명만 되어있었고, 이 방식은 Queuing 에 의한 WFQ의 사후 처리가 아닌 사전 체리에 관련된 내용이었음. 솔직히 WFQ 왜 냈는지 모르겠음. -_-;;
  • ConnectingTheDots . . . . 1 match
         SoftwareDevelopmentMagazine 에 소개된 ModelViewPresenter 관련 구현 예.
         http://www.sdmagazine.com/documents/s=7147/sdm0206b/0206b.htm
         BoardPanel - View. 실제 Swing 등 구체적 라이브러리들을 이용, 실제 표현을 한다. BoardPresenter 와 상호참조 관계를 가진다.
         관계를 맺는 코드는 Dots.java 에 있다. 즉, initialize() 를 보면 다음의 코드가 나온다.
          _game = new Game(4, Arrays.asList(new String[] {"JL", "TL", "KML"}));
         BoardPanel.mouseReleased -> BoardPresenter.processClick -> Game.join 식으로 호출되며
         Game.boxClosed -> listener.boxClosed (여기서 listener 는 Presenter. Presenter 들은 여러개가 될 수 있다. Game 객체에 addListener 로 등록된 만큼) -> BoardPanel.drawInitials. 식으로 도메인 모델로부터 올라온다.
  • ConstructorMethod . . . . 1 match
         class Point
          void setXnY(int x, int y) { /* ... */ }
         Point* pt = new Point;
         class Point
          void setXnY(int x, int y) { /* ... */ }
          static Point* makeFromXnY(int x, int y)
          Point* pt = new Point;
         Point* pt = Point::makeFromXnY(0,0);
         class Point
          void setXnY(int x, int y) { /* ... */ }
          static Point* makeFromXnY(int x, int y) { /* ... */ }
          static Point* makeFromRnTheta(int r, int theta)
          return makeFromXnY(r*cos(theta),r*sin(theta));
  • ConvertAppIntoApplet/진영 . . . . 1 match
         http://nihs.com.ne.kr/temp/NotHelloWorldApplet.html
         // NotHelloWorldApplet.java
         import javax.swing.*;
         class NotHelloWorldPanel extends JPanel
          public void paintComponent(Graphics g)
          super.paintComponent(g);
          g.drawString("Not a Hello, World applet", 75, 100);
         public class NotHelloWorldApplet extends JApplet
          public void init()
          Container contentPane = getContentPane();
          contentPane.add(new NotHelloWorldPanel());
         ["JavaStudyInVacation/진행상황"]
  • CrcCard . . . . 1 match
         Class - Responsibility - Collaboration Card. 보통은 간단한 3 x 5 inch 짜리의 인덱스카드(IndexCard)를 이용한다.
         See Also Moa:CrcCard , ResponsibilityDrivenDesign, [http://c2.com/doc/oopsla89/paper.html aLaboratoryForTeachingObject-OrientedThinking]
  • CubicSpline/1002/CubicSpline.py . . . . 1 match
         class MainFrame(wxFrame):
          def __init__(self, parent=NULL, id=NewId(), title='Graph', pos=wxDefaultPosition, size=wxDefaultSize):
          wxFrame.__init__(self, parent, id, title, pos, size)
          self._initChildControl()
          def _initChildControl(self):
          def OnInit(self):
          frame = MainFrame(pos=(100,100), size=(720,400))
         if __name__=="__main__":
          theApp = App(0)
          theApp.MainLoop()
  • CuttingSticks/김상섭 . . . . 1 match
         #include <iostream>
         using namespace std;
         #include <vector>
         int main()
          int length, tokennum, token, l, i, j, m;
          vector< vector<int> > Data;
          vector<int> temp;
          cin >> length;
          cin >> tokennum;
          for(int i = 0 ; i < tokennum; i++)
          cin >> token;
          cin >> length;
          int store[51][51];
          for(vector< vector<int> >::iterator k = Data.begin(); k != Data.end(); k++)
          int temp1,min = INT_MAX;
          if(min > temp1)
          min = temp1;
          store[i][i+m] = min + temp[i+m] - temp[i];
          cout << "The minimum cutting is " <<store[0][tokennum] << ".\n";
  • CuttingSticks/문보창 . . . . 1 match
         // 10003 - Cutting Sticks
         #include <iostream>
         using namespace std;
         //#include <fstream>
         #define MAX_CUT 53
         #define MAX_NUM 0x7fffffff
         //fstream fin("in.txt");
         static int lenStick, numCut;
         static int cut[MAX_CUT];
         static int d[MAX_CUT][MAX_CUT];
         bool input()
          cin >> lenStick;
          cin >> numCut;
          for (int i = 1; i <= numCut; i++)
          cin >> cut[i];
         void initTable()
          for (int i = 0; i <= numCut; i++)
         int process()
          initTable();
          int j, min;
  • CuttingSticks/하기웅 . . . . 1 match
         #include <iostream>
         using namespace std;
          int len;
          int cost;
         int stickLen, cuttingTime, cuttingPart, preCutting;
         int i,j,k,stickNum;
         int calculate()
          while(stickNum!=cuttingTime+2)
          for(i=0,j=stickNum; i<cuttingTime-stickNum+2; i++,j++)
          return stick[0][cuttingTime+1].cost;
         int main()
          while(cin>>stickLen)
          cin>>cuttingTime;
          preCutting=0;
          for(i=0; i<cuttingTime; i++)
          cin >> cuttingPart;
          stick[i][i+1].len=cuttingPart-preCutting;
          preCutting = cuttingPart;
          stick[cuttingTime][cuttingTime+1].len=stickLen-preCutting;
          stick[cuttingTime][cuttingTime+1].cost=0;
  • DPSCChapter5 . . . . 1 match
         '''Chain of Responsibility(225)''' Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects, and pass the request along the chain until an object handles it.
         '''Command(245)''' Encapsulate a request or operation as an object, thereby letting you parameterize clients with different operations, queue or log requests, and support undoable operations.
         '''Interpreter(261)'''
         '''Chain of Responsibility(225)'''
  • DataCommunicationSummaryProject/Chapter5 . . . . 1 match
          * Global roaming - 특별한 multimode phone에서만 가능
          === 3G defined ===
          * 인터넷의 중요성을 느낀 후, Packet Switching Backbone에 기초한 인터넷 프로토콜을 제공하기로 요구사항 추가
          * Voice(서킷) : 고정 전화기 수준의 음질. 소리 나는 메일, Conference Calling
          * Messaging(패킷) : e-mail과 합쳐진, Extension of paging(뭘까)->(뭐긴 삐삐가 이메일도 가능하다는거지.ㅋㅋ). 지불과 전자 티켓팅
          * Interactive(서킷) High Multimedia
          * 3G 서비스를 전세계가 같은 주파수대(쉬운 global roaming을 위해)를 할당하고자 했으나 뻑났다.
          * Roaming : operation의 multiple modes - 각기 다른 3G System.
          * 일본 표준(1999's UMTS + 메세징 시스템 + content based billing)
          === Upgrading to 3.5G ===
  • DebuggingSeminar_2005/DebugCRT . . . . 1 match
         || _CRTDBG_CHECK_ALWAYS_DF || _CrtCheckMemory() 함수를 모든 new, delete 함수에 대해서 자동 호출 되도록 지정한다.[[BR]] 이 함수는 할당된 공간의 유효성을 지속적으로 체크한다. 즉 domainerror나 기타 메모리 access에 관한 부분을 검사한다. 대신 오버헤드가 상당하다. 그러나 그만큼 디버깅의 효율성을 높여줄 수 있다. ||
         int flas = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
         //this define must occur before any headers are included.
         //반드시 include 전처리기의 앞부분에 선언되어야함.
         #define _CRTDBG_MAP_ALLOC
         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
         #include <tchar.h>
         // include crtdbg.h after all other headers.
         // 전처리 문장이 끝난뒤에 include
         #include <crtdbg.h>
         int main(int argc, char *argv[]) {
          //turn on the full heap checking
         {{{~cpp int _CrtSetReportMode(int reportType, int reportMode);
         {{{~cpp _HFILE _CrtSetReportFile(int reportType, _HFILE reportFile);
         = output in debug console (vc++6) =
          참조) [http://zeropage.org/wiki/AcceleratedC_2b_2b_2fChapter11#line287 The rule of Three]
         [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/_core_c_run2dtime_library_debugging_support.asp MSDN]
         [DebuggingSeminar_2005]
  • DecomposingMessage . . . . 1 match
         === Decomposing Message ===
          controlInitialize();
          controlTerminate();
  • DevCpp . . . . 1 match
         설치법 - [DevCppInstallationGuide]
  • DevelopmentinWindows . . . . 1 match
          * '''Windows 서브시스템 - GUI 모드 에플리케이션 운영'''[[BR]]
          (앞으로 Windows 서브시스템 기반의 프로그래밍을 윈도우즈 프로그래밍이라고 하겠다.)
          * Windows CE 서브시스템 - Windows CE 에플리케이션 운영
          * 표준 사용자 인터페이스 제공 (["DevelopmentinWindows/UI"])
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/Message.jpg
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/Hardware.jpg
          * 윈도우즈 API (Application Program Interface)
          * Static-Link Library[[BR]]
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/SLL.jpg
          * Dynamic-Link Library[[BR]]
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/DLL.jpg
          DirectX - dplay.dll, dsound.dll, dinput.dll, ddraw.dll)
          ||INT||signed int||
          ||UINT||unsigned int||
          * 윈도우를 만드는 함수는 CreateWindow, 메시지를 보내는 함수는 SendMessage
          ||n 또는 i||INT 타입의 변수||
          ||u||UINT 타입의 변수||
          * ["DevelopmentinWindows/APIExample"] - 소스 보기
          * http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/API.zip - 다운 받기
          * ["DevelopmentinWindows/MFCExample"] - 소스 보기
  • DiceRoller . . . . 1 match
          * SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다.
          4. 현재는 윈도우 메세지 Hooking에 대해서 보고 있다. // 이건 좀 보류..ㅡ.ㅡ;;
         HWND hWnd = FindWindow("My Process Caption Name", NULL);
          GetWindowThreadProcessId(hWnd, &ProcessId); // hWnd로 프로세스 ID를 얻음..
  • Direct3D . . . . 1 match
         CMyD3DApplication->InitDeviceObject() : 오브젝트의 초기화를 수행하는 부분
  • DirectDraw . . . . 1 match
         Include Files 에는 C:\DXSDK\INCLUDE를 [[BR]]
         그리고 Project Setting -> Link -> Object/Library modules에는
         #include <ddraw.h>
          * DDSCL_NOWINDOWCHANGES : 최소화/최대화를 허용하지 않는다.
         ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; // 오프스크린임을 표시
         hb = (HBITMAP) LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, cxDesire, cyDesire, LR_CREATEDIBSECTION);
  • DirectDraw/DDUtil . . . . 1 match
         ["TheWarOfGenesis2R"]페이지의 개설에 따라 사용법을 모읍니다.
         DXSDK에서 제공하는 함수 모음집.(ㅡ.ㅡa) (Direct Draw 의 Wrapping Class 가 되겠지요.)
         CreateWindowedDisplay HWND hWnd, DWORD dwWidth, DWORD dwHeight)
          CDislpay의 멤버 m_rcWindow를 갱신한다. 저 CRect형 변수에는 윈도우의 크기가 들어있다.
  • DispatchedInterpretation . . . . 1 match
         == Dispatched Interpretation ==
         역시 코드로 이해하는 것이 빠르다. Shape 객체는 line, curve, stroke, fill 커맨드들의 순차적인 조합으로 이루어져 있다. 이것은 commandAt(int)라는 n번째 커맨드를 리턴해주는 메세지와, argumentsAt(int)라는 커맨드에 넘겨줄 인자들의 배열을 리턴해주는 메세지를 제공해준다.
         class PostScriptShapePrinter
          for(int i = 0 ; i < aShape.size() ; ++i)
          if(command == lineFunc)
          printPoint(argument.at(1));
          printPoint(argument.at(2));
          nextPutAll("line");
         모든 커맨드를 위한 case 구문을 쓰지 말고, PostScriptShapePrinter에 모든 커맨드를 두자.
         void PostScriptShapePrinter::line(Point& from, Point& to)
          printPoint(from);
          printPoint(to);
          nextPutAll("line");
         void PostScriptShapePrinter::curve(/* ... */) { /* ... */ }
         또한, commantAt이나 argumentAt같은 메세지 말고, sendCommand(at,to) 같은 메세지를 제공하자. 위의 line,curve도 이꼴이므로 같이 다룰수 있다.
         void PostScriptShapePrinter::display(Shape& aShape)
          for(int i = 0 ; i < aShape.size() ; ++i)
          for(int i = 0 ; i < size() ; ++i)
         void PostScriptShapePrinter::display(Shape& aShape)
  • DylanProgrammingLanguage . . . . 1 match
         Dylan is an advanced, object-oriented, dynamic language which supports rapid program development. When needed, programs can be optimized for more efficient execution by supplying more type information to the compiler. Nearly all entities in Dylan (including functions, classes, and basic data types such as integers) are first class objects. Additionally Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object introspection, macros, and many other advanced features... --Peter Hinely
         Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
         Warranty: Distributed WITHOUT WARRANTY OF ANY KIND
         define method say-hello()
          format-out("hello there!\n");
          * dynamic language 라.. dynamic programming 은 들어봤어도.. -_-a [임인택]
  • EXIT MUSIC처음화면 . . . . 1 match
          * Intaek Lim, masterhand {{{at}}} gmail {{{dot}}} com
  • English Speaking/The Simpsons/S01E04 . . . . 1 match
         = There's no disgrace like home =
         Homer : Another beer, Moe.
         Moe : What's-a matter, Homer? Bloodiest fight of the year.
         You're sitting there like a thirsty bump on a log.
         Police 1 : Evening, Moe.
         Moe : Two bucks, boys. Just kidding.
         Police 2 : Good one, Moe. We're looking for a family of Peeping Toms...
         who's been terrorizing the neighborhood.
         Let the nice people enjoy their beers.
         Ah, don't worry. This dog has the scent.
         Police 1 : What's gotten into Bobo?
         Homer : I got some wieners in my pocket.
         Homer : You know, Moe, my mom once said something that really stuck with me.
         She said, " Homer, you're a big disappointment."
         And God bless her soul, she was really on to something.
         Homer : You can't talk that way about my kids! Or at least two of them.
         [English Speaking/2011년스터디]
  • EnglishSpeaking/TheSimpsons . . . . 1 match
         [[pagelist(^EnglishSpeaking/TheSimpsons/S01)]]
         [EnglishSpeaking/2011년스터디]
  • EnglishSpeaking/TheSimpsons/S01E02 . . . . 1 match
         = Bart the Genius =
         Marge : All right. Mmm. How about "he"? Two points. Your turn, dear.
         Homer : Hmm. How could anyone make a word out of these lousy letters?
         Bart : As in, "This game is stup-id."
         Lisa : Yeah, Bart. You're supposed to be developing verbal abilities
         Marge : We could look this "id" thing up in the dictionary.
         Marge : I think it's under the short leg of the couch.
         Lisa : "Id: Along with the ego and the superego
          one of three components of the psyche."
          Twenty-two points, plus triple word score
          plus 50 points for using all my letters.
         Homer : Wait a minute, you little cheater.
          You're not going anywhere until you tell me what a "kwyjibo" is.
          A big, dumb, balding, North American ape with no chin.
         Homer : I'll show you a big, dumb, balding ape!
         Bart : Uh-oh. Kwyjibo on the loose.
         [EnglishSpeaking/TheSimpsons]
  • EnglishSpeaking/TheSimpsons/S01E03 . . . . 1 match
         Lisa : Here's a good job at the fireworks factory.
         Lisa : How 'bout this? Supervising technician at the toxic waste dump.
         Homer : I'm no supervising technician. I'm a technical supervisor.
         I've never done anything worthwhile in my life.
         I'm a big, worthless nothing.
         Marge : There, there, Homer. You'll find a job.
         You've caused plenty of industrial accidents, and you've always bounced back.
         Homer : You're right! I'm young, I'm able-bodied and I'll take anything!
         Watch out, Springfield. Here I come.
  • EnglishSpeaking/TheSimpsons/S01E04 . . . . 1 match
         = There's no disgrace like home =
         Homer : Another beer, Moe.
         Moe : What's-a matter, Homer? Bloodiest fight of the year.
         You're sitting there like a thirsty bump on a log.
         Police 1 : Evening, Moe.
         Moe : Two bucks, boys. Just kidding.
         Police 2 : Good one, Moe. We're looking for a family of Peeping Toms...
         who's been terrorizing the neighborhood.
         Let the nice people enjoy their beers.
         Ah, don't worry. This dog has the scent.
         Police 1 : What's gotten into Bobo?
         Homer : I got some wieners in my pocket.
         Homer : You know, Moe, my mom once said something that really stuck with me.
         She said, " Homer, you're a big disappointment."
         And God bless her soul, she was really on to something.
         Homer : You can't talk that way about my kids! Or at least two of them.
         [English Speaking/2011년스터디]
  • EnterpriseJavaBeans . . . . 1 match
         처음 공부하는 사람은 MasteringEJB 의 예제를 간단히 실행해보기를 추천.
         Lomboz - ["Eclipse"] 플러그인. 내부적으로 XDoclet를 이용, Home & Remote & Local Interface 를 자동으로 생성해준다.
  • ExploringWorld/20040308-시간여행 . . . . 1 match
          3.3 resin 2.1.4 -> 3.0.6 (J2EE 1.3 -> 1.4)
         지하철에서 세환이와 오늘을 제목을 정한다면, 어떨까 라는 고민을 했다. '워밍업 데이'? '시작한날'? 하지만 이런 무미건조한 단어를 쓰기에 오늘을 따뜻하게 표현하고 싶었다. 그리고 집에와 Zp서버의 과거를 주로 이야기한 '시간여행'이라는 제목을 붙였다. 오늘을 한마디로 설명하기에 충분한 날이다. 그러나 크게 후회되는 점이 있다. 얼마전 나의 여행기에 '잘못된 이야기'에 대한 반성을 쓰고 실천 사항을 적었는데 오늘 후배님들 앞에서 실천하지 않았다. 결과, 다시 한번 아까운 시간을 두서없는 이야기로 채우는 우를 반복하였다. 다음주에는 반드시 이야기를 위한 '계획'을 세워 가치있고 압축적으로 시간을 써야겠다. --NeoCoin
          아니 무슨 그런 황송한 말씀을, 다 재미있자고 하는 일인데 --NeoCoin
         집으로 돌아와 MakeAnotherWorld 라는 세상을 만든다는 거창한 은유법보다, 여행을 한다는 느낌의 은유로 시작하면 재미있겠다는 생각이 들었다. 그래서 WalkingAroundWorld 나, CyclingWorld 같은 여행이라는 은유의 제목이 더 그럴싸한것 같은데, 너희들은 어때? --NeoCoin
         탐험하는것은 어때요? Exploring(The)World 같은... --세환
          오 좋은 생각이다. 차타고 휙지나가는게 아니라, 자전거를 타거나 걸어다니면서 이것도 기웃 저곳도 기웃을 생각했는데, 그럴게 아니라 새로운 세계를 탐험한다는 느낌이 더 좋을것 같다. ExploringWorld 정도면 될것 같다. rename 할까? 또 좋은 의견 없나? --NeoCoin
         ExploringWorld
  • Favorite . . . . 1 match
         [http://xper.org/wiki/seminar/RecentChanges XperSeminar]
         [http://www.passioninside.com 구근이형 개인위키]
         [http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Practices/Kata]
         [http://www.winapi.co.kr/ WINAPI]
         [http://www.cinsk.org/cfaqs/html/ C에서 자주묻는질문]
         [http://xper.org/wiki/xp/TestDrivenDevelopmentInCeeLanguage TDD in Cee]
         [http://www.aawoo.com/Main.do]
         [http://agile.egloos.com/ AgileConsulting]
  • FooBarBaz . . . . 1 match
          * Programming Language 서적에 나오는 예제 코드에 Foo, Bar, Baz 등의 단어가 자주 등장한다.
          * ''Baz! The return key on my keyboard is stuck!''
  • FromDuskTillDawn/변형진 . . . . 1 match
          var $train;
          $ln = explode("\n", "2\n3\nUlm Muenchen 17 2\nUlm Muenchen 19 12\nUlm Muenchen 5 2\nUlm Muenchen\n11\nLugoj Sibiu 12 6\nLugoj Sibiu 18 6\nLugoj Sibiu 24 5\nLugoj Medias 22 8\nLugoj Medias 18 3\nLugoj Reghin 17 4\nSibiu Reghin 19 6\nSibiu Medias 20 3\nReghin Medias 20 4\nReghin Bacau 24 6\nMedias Bacau 4 6\nLugoj Bacau");
          $this->train = array();
          if(($start<18&&$start>6)||($end<18&&$end>6)||($start<=6&&$start>=$end)||($end>=18&&$end<=$start)) continue;
          $this->train[$from][] = array("to"=>$to, "start"=>($start+6)%24, "end"=>($end+6)%24);
          else echo "There is no route Vladimir can take.<br>";
          for($i=0; $this->train[$from][$i]; $i++)
          $next = $this->train[$from][$i][to];
          if($city[$next]) continue;
          if($this->train[$from][$i][start]>=$start)
          $today[$next] = min(($today[$next])?$today[$next]:0, $this->train[$from][$i][end]-12);
          else $tomorrow[$next] = min(($tomorrow[$next])?$tomorrow[$next]:0, $this->train[$from][$i][end]-12);
          if($today[$next]) continue;
  • FromDuskTillDawn/조현태 . . . . 1 match
         #include <iostream>
         #include <vector>
         #include <string>
         using namespace std;
         const char DEBUG_READ[] = "2\n3\nUlm Muenchen 17 2\nUlm Muenchen 19 12\nUlm Muenchen 5 2\nUlm Muenchen\n10\nLugoj Sibiu 12 6\nLugoj Sibiu 18 6\nLugoj Sibiu 24 5\nLugoj Medias 22 8\nLugoj Medias 18 8\nLugoj Reghin 17 4\nSibiu Reghin 19 9\nSibiu Medias 20 3\nReghin Medias 20 4\nReghin Bacau 24 6\nLugoj Bacau";
         const int BUFFER_SIZE = 255;
         #define TRUE 1
         #define FALSE 0
          STown(const char* inputName)
          name = inputName;
          string name;
          vector<int> startTime;
          vector<int> timeDelay;
         string g_suchStartTown;
         string g_suchEndTown;
         int g_minimumDelayTime = 0;
          for (register unsigned int i = 0; i < g_myTowns.size(); ++i)
          int startTime;
          int delayTime;
          int sizeOfTimeTable;
  • Functor . . . . 1 match
         [BuildingParserWithJava]를 보다가 12장에서 처음 접한 단어. FunctionObject를 부르는 말이다.
         A function object, often called a functor, is a computer programming construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax. The exact meaning may vary among programming languages. A functor used in this manner in computing bears little relation to the term functor as used in the mathematical field of category theory.
         비슷한 구현에 대해서 OO 쪽에서는 MethodObject 라 부르기도 함. (Refactoring에 나옴) 구현 모양상으로 보면 CommandPattern, C++ 진영에서는 Functor 가 일반적인 표현.; --[1002]
  • GTK+ . . . . 1 match
         GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites.
         GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
         GTK+ is based on three libraries developed by the GTK+ team:
         GLib is the low-level core library that forms the basis of GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.
         Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0.
         The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices.
         GTK+ has been designed from the ground up to support a range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development.
         #include <gtk/gtk.h>
         static void hello(GtkWidget *widget, gpointer data)
          g_print("Hello, World!!\n");
         static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
          g_print("delete event occurred\n");
         static void destroy(GtkWidget *widget, gpointer data)
          gtk_main_quit();
         int main(int argc, char* argv[])
          GtkWidget *window;
          gtk_init(&argc, &argv);
          window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
          g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
          g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
  • GarbageCollection . . . . 1 match
         2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
         특정 주기를 가지고 가비지 컬렉션을 하기 때문에 그 시점에서 상당한 시간상 성능의 저하가 생긴다. 이건 일반적 애플리케이션에서는 문제가 되지 않지만, time critical 애플리케이션에서는 상당한 문제가 될 부분임. (Incremental garbage collection? 를 이용하면 이 문제를 어느정도 해결하지만 리얼타임 동작을 완전하게 보장하기는 어렵다고 함.)
  • Gof/Mediator . . . . 1 match
         == Intent ==
         MediatorPattern은 객체들의 어느 집합들이 interaction하는 방법을 encapsulate하는 객체를 정의한다. Mediator는 객체들을 서로에게 명시적으로 조회하는 것을 막음으로서 loose coupling을 촉진하며, 그래서 Mediator는 여러분에게 객체들의 interactions들이 독립적으로 다양하게 해준다.
         비록 하나의 시스템에 많은 객체들이 참여하는 것이 일반적으로 재사용성을 강화할지라도 interconnections이 늘어나는 것은 재사용성을 감소시키려는 경향이 있다. 너무나 많은 객체간의 상호 연결들은 객체들의 독립성을 떨어뜨릴 수 있다. - 그런 시스템은 마치 완전히 통일된 것 같이 행동한다.
         다른 다이얼로그 박스들은 도구들 사이에서 다른 dependency들을 지닐 것이다. 그래서 심지어 다이얼로그들이 똑같은 종류의 도구들을 지닌다 하더라도, 단순히 이전의 도구 클래스들을 재사용 할 수는 없다. dialog-specific dependency들을 반영하기 위해서 customize되어져야 한다. subclassing에 의해서 개별적으로 도구들을 Customize하는 것은 지루할 것이다. 왜냐하면 많은 클래스들이 그렇게 되어야 하기 때문이다.
         별개의 mediator 객체에서 집단의 행위로 encapsulate하는 것에 의해서 이런 문제를 피할 수 있다. 하나의 mediator는 객체들 그룹 내의 상호작용들을 제어하고 조정할 책임이 있다. 그 mediator는 그룹내의 객체들이 다른 객체들과 명시적으로 조회하는 것을 막는 중간자로서의 역할을 한다. 그런 객체들은 단지 mediator만 알고 있고, 고로 interconnection의 수는 줄어 들게 된다.
         예를 들면, FontDialogDirector는 다이얼로그 박스의 도구들 사이의 mediator일 수 있다. FontDialogDirector객체는 다이얼로그 도구들을 알고 그들의 interaction을 조정한다. 그것은 도구들 사이의 communication에서 hub와 같은 역할을 한다.
         다음 interaction diagram은 객체들이 리스트박스의 선택에서 변화를 다루기 위해 협동하는 방법을 묘사하고 있다.
         Here's the succession of events by which a list box's selection passes to an entry field.
          * 어떤 객체들의 집합이 잘 정의되었지만, 복잡한 방법으로 통신할 때. interconnection의 결과는 구조화되지 못하고 이해를 어렵게 한다.
          * 몇몇의 클래스들 사이에 분산되어진 하나의 행위가 많은 subclassing하는 작업 없이 customize되어져야 할 때.
          1. MediatorPattern은 subclassing을 제한한다. mediator는 다시말해 몇몇개의 객체들 사이에 분산되어질 행위를 집중한다. 이런 행위를 바꾸는 것은 단지 Mediator를 subclassing하기만 하면 된다. Colleague 클래스들은 재사용되어질 수 있다.
          2. MediatorPattern은 colleague들을 떼어놓는다. Mediator는 colleague들 사이에서 loose coupling을 촉진한다. colleagued와 Mediator를 개별적으로 다양하게 할 수 있고, 재사용 할 수 있다.
          4. MediatorPattern은 객체가 협동하는 방법을 추상화 시킨다. Mediation를 독립적인 개념으로 만들고 하나의 객체에 캡슐화하는 것은 여러분으로 하여금 객체의 행위는 제쳐두고 그 interaction에 집중하게 해준다. 이는 객체가 시스템 내에서 어떻게 interact하는 방법을 명확히 하는데 도움을 준다.
          5. MediatorPattern은 제어를 집중화한다. Mediator는 interaction의 복잡도를 mediator의 복잡도와 맞바꿨다. Mediator가 protocol들을 encapsulate했기 때문에 colleague객체들 보다 더 복잡하게 되어질 수 있다. 이것이 mediator를 관리가 어려운 monolith 형태를 뛰게 만들 수 있다.
          1. 추상 Mediator 클래스 생략하기. 추상 Mediator 클래스를 선언할 필요가 없는 경우는 colleague들이 단지 하나의 mediator와만 작업을 할 때이다. Mediator클래스가 제공하는 추상적인 coupling은 colleague들이 다른 mediator subclass들과 작동학게 해주며 반대의 경우도 그렇다.
         또 다른 방법은 colleague들이 보다 더 직접으로 communication할 수 있도록 특별한 interface를 mediator에게 심는 것이다. 윈도우용 Smalltalk/V가 대표적인 형태이다. mediator와 통신을 하고자 할 때, 자신을 argument로 넘겨서 mediator가 sender가 누구인지 식별하게 한다. Sample Code는 이와 같은 방법을 사용하고 있고, Smalltalk/V의 구현은 Known Uses에서 다루기로 하겠다.
         우리는 DialogDirector를 Motivation에서 보았던 것처럼 font dialog를 구현하기 위해서 사용할 것이다. 추상 클래스 DialogDirector는 director들을 위한 interface를 정의 하고 있다.
          // fill the listBox white the available font names
          // assemble the widgets in the dialog
          Widget* theChangedWidget
  • GoodMusic . . . . 1 match
         요즘엔 이런게 재미있네요.-_-a 자신이 좋아하는 노래들을 적어봅시다. 역시 InterestingCartoon 페이지처럼 스마일로 점수를 매겨봅시다. 위키 활성화 차원에서..^^;
         || 박혜경 - Rain || :D || 1 ||
  • Hacking/20041028두번째모임 . . . . 1 match
          http://www.debian.org/devel/debian-installer
          [http://khdp.org/docs/trans_doc/phrack-51-11.txt Phrack 51호 The art of scanning 번역]
          cd, pwd, man, ls, cp, rm, mkdir, rmdir, mv, cat, more, less, grep, find, echo, uname, adduser, passwd, id, su
          http://www.hackerslab.org/korg/index.fhz?menu=fhz
          User Mode Linux 혹은 VMWare 를 이용.
         [Hacking]
  • HaskellLanguage . . . . 1 match
          * [http://en.wikibooks.org/wiki/Programming:Haskell Haskell Programming Wikibook]
          * [http://pub.hal3.name/daume02yaht.pdf Yet another haskell tutorial] : Haskell 입문시에 도움이 된다.
          * [BeginningHaskellLanguage]
         == Haskell Interpreters ==
          * 저 위에보면, featuring static typing, higher-order functions, polymorphism, type classes and modadic effects 라고 있는데, 이것들이 아마 haskell language의 큰 특징들이 아닐까 한다. 각각에 대해서 알아두는게 도움이 될듯. ([http://www.nomaware.com/monads/html/ monad관련자료])- 임인택
          Multiple declarations of `Main.f'
         [[include(틀:ProgrammingLanguage)]]
  • HelloWorld/상욱 . . . . 1 match
          public static void main(String[] args) {
          System.out.println("Hello World.");
         ["JavaStudyInVacation/진행상황"]
  • HelloWorld/영동 . . . . 1 match
          public static void main(String args[])
          System.out.println("HelloWorld");
         ["JavaStudyInVacation/진행상황"]
  • HelloWorld/진영 . . . . 1 match
          public static void main(String[] args)
          System.out.println("We will not use 'Hello World!'");
         ["JavaStudyInVacation/진행상황"]
  • HelpContents . . . . 1 match
          * OpeningStatement - 페이지에 꼭 들어가야 할 정보
          * HelpForBeginners - 위키 초보자를 위한 페이지
          * HelpOnEditing - 페이지를 고치기
         HelpIndex를 보시면 자동으로 만들어진 도움말 목록을 보실 수 있습니다.
  • HelpIndex . . . . 1 match
         The following is a list of all help pages:
  • HelpOnCvsInstallation . . . . 1 match
          1. 설명에 나와있는 것처럼 먼저 CVS로 로그인을 합니다. {{{cvs -d :pserver:anonymous@kldp.net:/cvsroot/moniwiki login}}}
         이후의 설치방법은 HelpOnInstallation 페이지를 참고하세요.
         [[Navigation(HelpOnAdministration)]]
  • HelpOnEditing . . . . 1 match
          * HelpOnFormatting - 기본적인 텍스트 포매팅 문법
          * HelpOnLinking - 페이지간 연결과 이미지 넣기
          * HelpOnHeadlines - 단락별 제목 쓰기
          * HelpOnProcessingInstructions - 페이지 제어
         [[Navigation(HelpOnEditing)]]
  • HelpOnInstallation . . . . 1 match
         `rcs`가 설치되었는지 확인한다. {{{/usr/bin/rlog /usr/bin/ci /usr/bin/co}}}등등의 실행파일이 있어야 한다. {{{/usr/bin/merge}}}도 필요하다. PHP gettext 모듈이 필요하다. See also MoniWikiRcs
          * 윈도우즈에서 모니위키를 설치하는 방법은 ApacheMoniwikiInstaller을 참고 하십시오.
         /!\ 처음 설치할 때 관리 비밀번호 {{{$admin_passwd}}}를 반드시 설정해 주세요 /!\
          1. MoniSetup을 실행시킬 때, {{{$admin_passwd}}}를 설정하면 자신만 DeletePage할 수 있다. 이 값을 설정하면, 차후에 MoniSetup을 할 때 이 값을 알아야 고칠 수 있으며, config.php에 이 값이 들어가므로 수동으로 고칠 수 있다. See also AdminPassword
         [[Navigation(HelpOnAdministration)]]
  • HelpOnInstalling . . . . 1 match
         See ["MoniWiki/Installation"]
          귀찮아서 INSTALL파일에 여기를 향하는 링크를 달랑 넣었습니다. :p
  • HelpOnXmlPages . . . . 1 match
         == XML Pages & XSLT Processing ==
         If you have Python4Suite installed in your system, it is possible to save XML documents as pages. It's important to start those pages with an XML declaration "{{{<?xml ...>}}}" in the very first line. Also, you have to specify the stylesheet that is to be used to process the XML document to HTML. This is done using a [http://www.w3.org/TR/xml-stylesheet/ standard "xml-stylesheet" processing instruction], with the name of a page containing the stylesheet as the "{{{href}}}" parameter.
         See the following example for details, which can also be found on the XsltVersion page.
         /!\ MoniWiki support two type of XSLT processors. One is the xslt.php, the other is xsltproc.php. xslt.php need a xslt module for PHP and xsltproc.php need the xsltproc.
         <?xml version="1.0" encoding="ISO-8859-1"?>
          <xsl:output method="html" omit-xml-declaration="yes" indent="no"/>
          This Wiki is running an XSLT engine by
          implementing XSLT v<xsl:value-of select="system-property('xsl:version')"/>
         [[Include(XsltVersion)]]
         [[Navigation(HelpOnEditing)]]
  • HierarchicalWikiWiki . . . . 1 match
         HierarchicalWikiWiki''''''s can be created by using the InterWiki mechanism.
  • HolubOnPatterns/밑줄긋기 . . . . 1 match
          * faith coding과도 상통하는 말인가ㅋㅋ - [서지혜]
          * 2학년땐 나도 저렇게 생각했다ㅜㅜㅜ [Spring/탐험스터디]에서도 얘기했지만 그래서 객체지향설계라면 메소드만 있는 클래스는 존재해선 안된다고 말한 적도 있음ㅜㅜㅜㅜ 부끄럽다... - [김수경]
          * 켄 아놀드는 다음과 같이 말한다. "정보가 아닌 도움을 요청하라(Ask for help, not for information)."
         interface Employee
          * ''''유일성'과''' ''''전역 접근'이란''' 조건을 만족시키면 Singleton 패턴의 실체화라 할 수 있다. Employee factory는 두 조건을 모두 만족시키므로 합당한 Singleton 패턴 실체화이다.
         ==== Singleton에서의 스레딩 이슈 ====
         class Singleton
         { private static Singleton instance = null;
          public static instance()
          { if( instance == null)
          { instance = new Singleton();
          return instance;
         ==== Double-Checked Locking(사용하지 말라) ====
         ==== Singleton 죽이기 ====
          * 또한 셧다운 훅 안에서 Singleton을 사용한다면 죽었다 되살아나는 좀비 Singleton을 만들 위험도 있다.
          * 그리고 좀비가 너의 뇌를 먹겠지(Zombie ate your brain) - [김준석]
          * 앞에서 객체를 생성할 때 Singleton 패턴과 Abstract Factory 패턴이 자주 함께 사용된다고 설명했다. '''그러므로''' Abstract Factory에 대해 좀 더 알아보기로 하자.
          * 관점을 바꾸어 보면 {{{URLConnection은 InputStream}}} 구현체들을 생성하는 Abstract Factroy이기도 하다.
          * Naver Ending Story.. - [김준석]
          * Naver Anding story? - [서지혜]
  • HowManyZerosAndDigits . . . . 1 match
         [http://online-judge.uva.es/p/v100/10061.html 원문보기]
         == Input ==
         책에 있는 올림피아드 문제 원문 그대로를 실었습니다. 문제가 명확하지 않다는 점을 부정할 순 없지만, 문제에 손을 댈 경우 제 주관적인 생각이 문제의 틀을 바꿔버릴 수 있기때문에 어쩔수 없습니다. 개인적 소견으로는 N!을 B진법으로 변환하는 것이므로, 입력을 받는 N이 조금만 커져도 N!이 굉장히 커지기 때문에 N은 B보다 작은 범위, 즉 B진수 체계에서 한자리를 입력받는 문제가 아닐까 합니다. 또한, 문제의 마지막 조건인 2^31-1 같이 int형의 오버플로우방지를 해 놓은 것에서 보듯 범위를 어느정도 제한해 놓았다고 보여집니다. 정확한 답변을 드리지 못해 죄송합니다. - [문보창]
  • HowToStudyDataStructureAndAlgorithms . . . . 1 match
         제가 생각컨데, 교육적인 목적에서는, 자료구조나 알고리즘을 처음 공부할 때는 우선은 특정 언어로 구현된 것을 보지 않는 것이 좋은 경우가 많습니다 -- 대신 pseudo-code 등으로 그 개념까지만 이해하는 것이죠. 그 아이디어를 Procedural(C, 어셈블리어)이나 Functional(LISP,Scheme,Haskel), OOP(Java,Smalltalk) 언어 등으로 직접 구현해 보는 겁니다. 이 다음에는 다른 사람(책)의 코드와 비교를 합니다. 이 경험을 애초에 박탈 당한 사람은 귀중한 배움과 깨달음의 기회를 잃은 셈입니다. 참고로 알고리즘 교재로는 10년에 한 번 나올까 말까한 CLR(''Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest'')을 적극 추천합니다(이와 함께 혹은 이전에 Jon Bentley의 ''Programming Pearls''도 강력 추천합니다. 전세계의 짱짱한 프로그래머/전산학자들이 함께 꼽은 "위대한 책" 리스트에서 몇 손가락 안에 드는 책입니다. 아마 우리 학교 도서관에 있을 것인데, 아직 이 책을 본 적 없는 사람은 축하드립니다. 아마 몇 주 간은 감동 속에 하루하루를 보내게 될 겁니다.). 만약 함께 스터디를 한다면, 각자 동일한 아이디어를 (같은 언어로 혹은 다른 언어로) 어떻게 다르게 표현했는지를 서로 비교해 보면 또 배우는 것이 매우 많습니다. 우리가 자료구조나 알고리즘을 공부하는 이유는, 특정 "실세계의 문제"를 어떠한 "수학적 아이디어"로 매핑을 시켜서 해결하는 것이 가능하고 또 효율적이고, 또 이를 컴퓨터에 어떻게 구현하는 것이 가능하고 효율적인지를 따지기 위해서이며, 이 과정에 있어 수학적 개념을 프로그래밍 언어로 표현해 내는 것은 아주 중요한 능력이 됩니다. 개별 알고리즘의 카탈로그를 이해, 암기하며 익히는 것도 중요하지만 더 중요한 것은 알고리즘을 생각해 낼 수 있는 능력과 이 알고리즘의 효율을 비교할 수 있는 능력, 그리고 이를 표현할 수 있는 능력입니다.
         알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
         이와 관련해서 Anany Levitin의 ''A NEW ROAD MAP OF ALGORITHM DESIGN TECHNIQUES''(DDJ, 2000 Apr)를 권합니다. 그는 알고리즘 디자인 테크닉을 다음 네가지로 크게 나눕니다:
  • IDE . . . . 1 match
         #redirect IntegratedDevelopmentEnvironment
  • IDL . . . . 1 match
         [CORBA] 의 경우 분산된 네트워크상에 따로 위치한 객체 간의 투명한 접근을 제공하는 서로 간의 약속이 필요하다. 이런 약속을 정의할 때 특정 언어([C], [C++], [Java] 등)에 의존하지 않는 인터페이스 정의 언어가 필요하게 되었는데, 그것이 바로 IDL(Interface Definition Language)이다. 서버와 클라이언트가 서로 통신을 하기 위해서 서버는 클라이언트에게 제공하는 서비스 인터페이스를 IDL 로 정의하게 되며, 클라이언트는 이런 인터페이스 정보를 활용하여 서비스를 활용하게 되는 것이다. CORBA 프로그램을 개발하기 위해서는 가장 먼저 IDL 을 정의해야 하는데, IDL 은 구현에 대한 정보는 포함하고 있지 않아 정의된 IDL 을 원하는 언어로
         물론, 인터페이스를 정의하는 방법이 IDL 만 있는 것은 아니다. [Visibroker] 의 경우 [Caffeine] 이라는 것을 이용하면 IDL 을 사용하지 않아도 되며, Java 의 RMI 나 RMI-IIOP 를 이용해면 IDL 을 몰라도 인터페이스를 정의할 수 있다. 하지만, IDL 은 OMG에서 규정하고 있는 인터페이스 정의 언어의 표준이고 개발자가 익히기에 어렵지 않은 만큼 CORBA 프로그램을 할 때는 꼭 IDL 을 사용하도록 하자.
  • InsideCPU . . . . 1 match
         = Inside CPU =
         음...여기까지만..귀찮아서 못 적겠다.. 보통 플로피의 0번 섹터를 write하기 위해 rawrite.exe란 프로그램을 쓴다. 플로피의 데이타를 얻기 위해 BIOS의 인터럽트루틴을 사용한다. 이를 위한 인터럽트는 INT 13h가 된다.
         보호모드란 80286부터 적용된 하드웨어적 지원이다. 이는 다른 CPU에도(다른 이름으로) 존재하며 운영체제에게 안전한 태스크 관리와 보다 빠른 Context Switching 을 적용할 수 있다. 이를 위해 몇몇의 assemble 코드가 추가 되었으며 80386 부터는 코드가 확장되어 보다 큰 메모리를 어드레스 할 수 있게 되었다. [[BR]]
         이를 위해 각각의 어드레스 접근에 privilege level을 두었고 이를 각각의 Application에 적용시켰다. 보호모드의 경우 멀티태스킹을 지원하기 위한 방법이다. 이는 지속적이고 반복적으로 일어나는 Context Switching 을 하드웨어적인 방법으로 만들어 소프트웨어적인 방법보다 빠른 Context Switching을 통해 하드웨어의 효율성을 높였다. 보호모드를 위한 레지스터와 방법들..
         == EXAMPLE 1. LINUX ==
         = INT 13H - From BIOS - =
  • IntegratedDevelopmentEnvironment . . . . 1 match
         IDE는 Integrated Development Environment를 말하며 한국어로는 통합 개발 환경을 의미한다. 보통 텍스트 편집기에 syntax highlite와 debugger, 빌드 도구, 컴파일러 등이 모두 통합되어 나오며 IDE하나만으로도 소스코드를 작성하는데 문제가 없다.[* 최근에는 이마저도 부족한 경우도 있다.]
         [[include(틀:IDE)]]
         종종 일반 Text editor가 너무나 많은 기능을 제공하는 나머지 IDE랑 헷갈리기도 한다. vim의 plugin을 깔거나 sublime을 잘 설정하면 IDE부럽지 않게 사용할수 있으나 해당 프로그램은 기본적으로 TextEditor이다. plugin을 통해서 지원하는 기능은 사실상 통합된 기능이라 보기 어렵기 떄문이다.
  • IntentionRevealingSelector . . . . 1 match
         == Intention Revealing Selector ==
         Array::linearSearchFor(Item&);
         Collection::includes(Item&);
  • InterIconMap . . . . 1 match
         http://chemie.skku.ac.kr/wiki/pds/InterIconMap/wkpgmail.png 140x21
         TwinPages http://chemie.skku.ac.kr/wiki/imgs/moni2/inter.png 16x16
  • InterMapIcon . . . . 1 match
         #redirect InterWikiIcons
  • IntroductionToAlgorithms . . . . 1 match
         See Also Moa:IntroductionToAlgorithms
  • IsBiggerSmarter?/문보창 . . . . 1 match
         단순히 Greedy 알고리즘으로 접근. 실패. Dynamic Programming 이 필요함을 테스트 케이스로써 확인했다. Dynamic Programming 을 실제로 해본 경험이 없기 때문에 감이 잡히지 않았다. Introduction To Algorithm에서 Dynamic Programing 부분을 읽어 공부한 후 문제분석을 다시 시도했다. 이 문제를 쉽게 풀기 위해 Weight를 정렬한 배열과 IQ를 정렬한 배열을 하나의 문자열로 보았다. 그렇다면 문제에서 원하는 "가장 긴 시퀀스" 는 Longest Common Subsequence가 되고, LCS는 Dynamic Algorithm으로 쉽게 풀리는 문제중 하나였다. 무게가 같거나, IQ가 같을수도 있기 때문에 LCS에서 오류가 나는 것을 피하기 위해 소트함수를 처리해 주는 과정에서 약간의 어려움을 겪었다.
         lcs_length함수에서 cost table을 만들어주는 과정의 running time은 O(n*n), memory cost는 O(n*n)이다. 그리고 print_lcs 함수에서 longest path를 거슬러 올라가는 running time은 O(n + n) = O(n)이다.
         #include <fstream>
         #include <vector>
         #include <algorithm>
         #include <iostream>
         using namespace std;
         fstream fin("input.txt");
         const int MAX_ELEPHANT = 1100;
          int index;
          int weight;
          int IQ;
         int input_elephant_info(Elephant * e);
         void count_elephant(Elephant * elephant, int num_elephant);
         int main()
          int num_elephant = input_elephant_info(elephant);
         int input_elephant_info(Elephant * e)
          int count = 0;
          while (fin >> e[count].weight >> e[count].IQ)
          e[count].index = count + 1;
  • IsThisIntegration?/김상섭 . . . . 1 match
         4337326 2006-02-15 08:15:39 Accepted 0.352 448 28565 C++ 10209 - Is This Integration ?
         #include <iostream>
         #include <math.h>
         using namespace std;
         int main()
          cout.setf(ios::showpoint);
          while(cin >> temp)
  • IsThisIntegration?/허준수 . . . . 1 match
         #include <iostream>
         #include <cmath>
         using namespace std;
         #define PI 3.141592
         int main()
          cout.setf(ios::showpoint);
          while(cin>>a) {
         [IsThisIntegration?]
  • IsbnMap . . . . 1 match
         WowBook http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN$ISBN2 http://image.wowbook.com/book/large_image/$ISBN2.gif
         AladdinMusic http://www.aladdin.co.kr/music/catalog/music.asp?ISBN= http://www.aladdin.co.kr/CDCover/$ISBN2_1.jpg
         AladdinBook http://www.aladdin.co.kr/catalog/book.asp?ISBN= http://www.aladdin.co.kr/Cover/$ISBN2_1.gif
          /!\ 일종의 InterWiki Map인 것이죠.
         [[ISBN(8986190842,AladdinBook)]]
         [[ISBN(8932905819,AladdinBook)]]
         [[ISBN(9049741495,AladdinMusic)]] [[ISBN(9049740871,AladdinMusic)]]
          http://www.aladdin.co.kr/music/catalog/music.asp?ISBN=9049741495
          [http://www.aladdin.co.kr/CDCover/2452436078_1.jpg]
          * 새책 : jpg {{{http://image.aladdin.co.kr/cover/cover/ISBN$_1.jpg}}}
          * 이전책 : gif {{{http://image.aladdin.co.kr/cover/cover/ISBN$_1.gif}}}
          IsbnMap 에서 map 을 분리해서 사용하는 방법이 있을 수 있고 - 이 경우 출판년도에 따라서 옵션을 달리 줘야 하는 불편함이 있습니다. - ISBN 매크로를 고쳐서 (가능하다면 jpg가 없을 때 gif를 찾는 어떤 로직을 넣는 방법이 있을지 않을까 하는 생각이 듭니다. 제가 coding에 능력이 전혀 없는지라, 이게 구현할 수 있는 방법인지는 모르겠지만 논리적 차원에서는 이게 사용자 정신건강에 이로운 해결책이 아닐까합니다. (제 위키에서 책목록을 관리하는데 수작업으로 바꿔 줄 생각을 하니 조금 끔직합니다. - 스크립트를 돌려도 되기는 하지만 ... )
         AladdinBOOK http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN= http://image.aladdin.co.kr/cover/cover/$ISBN2_1.gif
         AladdinBook http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN= http://image.aladdin.co.kr/cover/cover/$ISBN2_1.jpg
          모니위키 1.1.3에서는 이와 관련된 버그가 고쳐졌고, 알라딘 같은 경우는 확장자가 jpg/gif인 경우를 자동으로 검출합니다. 이 경우 php.ini에 {{{'allow_url_fopen=1}}}같은 식으로 설정이 되어있어야 합니다. 또, config.php에 {{{$isbn_img_download=1;}}} 와 같이 옵션을 넣으면 이미지를 다운로드할 수도 있게 하여, 일부 referer를 검사하여 이미지를 보이지 않게 하는 사이트에서도 활용하기쉽게 하였습니다. -- WkPark [[DateTime(2009-01-13T07:14:27)]]
         {{{[wiki:AladdinMusic:9049741495 http://www.aladdin.co.kr/CDCover/2452436078_1.jpg]}}}
         [wiki:AladdinMusic:9049741495 http://www.aladdin.co.kr/CDCover/2452436078_1.jpg]
  • JUnit . . . . 1 match
          * http://www.yeonsh.com/index.php?display=JUnit - 연승훈씨의 홈페이지. Cook Book (주소변경)
          * http://huniv.hongik.ac.kr/~yong/moin.cgi/JunitSampleCode - 박응용씨의 위키페이지. JUnit 간단한 예제.
         그리고 배치화일 디렉토리에 path 를 걸어놓고 쓰고 있죠. 요새는 JUnit 이 포함되어있는 IDE (["Eclipse"], ["IntelliJ"] 등등)도 많아서 이럴 필요도 없겠지만요. ^^ --석천
         java junit.swingui.TestRunner %1
          JUnit 에서 UnitTest (PyUnit) 에서처럼 testing message 나오게 하려면 어떻게 해야 하죠..? -임인택
          그 '''에서처럼''' 이란것이 무엇이지요? --NeoCoin
          PyUnit 에서 argument 로 -v 를 주면 testing message 가 나오지 않습니까..?
  • JUnit/Ecliipse . . . . 1 match
         O'REILLY 사의 Eclipse(저자 Steve Holzner) 를 구입하시거나 제본하신 분들께서는 CHAPTER 3. Testing and Debugging 을 보시면 Sample 예제와 함께 자세한 설명이 있음을 알려드립니다.
         Eclipse 플랫폼을 실행하시고, Window->Preference 메뉴를 선택하시면 Preferences 대화창이 열립니다. 왼쪽의 트리구조를 보시면 Java 라는 노드가 있고, 하위 노드로 Build Path 에 보시면 Classpath Varialbles 가 있습니다.
         clipse/plugins/org.junit_3.8.1/junit.jar
         Example 3-1. The Ch03_01.java
          private int[] array;
          public int[] allocate() {
          public int get(int index) {
          return array[index];
          public boolean set(int index, int value) {
          if(index < array.length && index >= 0) {
          array[index] = value;
         다음으로 자신이 테스트를 하고 싶은 메서드에 체크를 하고 Finish 하면 TestCase를 상속받는 새 클래스를 자동으로 생성하여 줍니다.
         여기서는 샘플소스의 메소드 3개( allocate(), get(int), set(int,int) )를 모두 체크합니다.
          public int[] allocate() {
          array = new int[3];
  • Java Script/2011년스터디/박정근 . . . . 1 match
          document.write("Infor : "+s,"<br>")
          for (var i in person)
          for (var i in person)
  • Java Study2003/첫번째과제/방선희 . . . . 1 match
          * Interpreted Environment 제공
          -- 기존의 compile/link/load방식의 언어에 비해 source를 compile만 하면 최종 수행코드가 생성됨으로 개발시간을 단축할 수 있다.
          * Java Virtual Machine (JVM)
          public static void main (String args[]) {
          System.out.println("Hello World!");
          * MicroSoft windows에서 신나게 실행되는 게임이 Linux에서도 잘 돌까? 아마도 답은 '아니다' 일 것이다. 그러나 만약 그 게임이 Java로 제작되었다면 답은 '예' 이다. 다시 말해 Java로 개발된 프로그램은 PC, Macintosh, Linux등 machine이나 O/S에 종속되지 않는다.
          기존에 Sun OS에서 Java로 개발한 인사시스템을 Windows NT로 이관하고 싶다. 이때 프로그램 수정없이 가능할까? Windows NT를 지원하는 JDK가 있다면 가능하다. 그러고 Windows NT를 지원하는 JDK는 있다.
  • Java/SwingCookBook . . . . 1 match
         Java Swing 관련 팁 모음.
         참조 사이트 : http://www.indiwiz.com/web/Java/Swing/
         === Centered Window ===
         frame.setLocation((d.width-frame.getWidth())/2, (d.height-frame.getHeight())/2);
         === Window Size 설정 ===
          * [IntelliJUIDesigner]
  • Java/스레드재사용 . . . . 1 match
          private static int id=0;
          private static synchronized int getID() { return id++;}
          public synchronized void interrupt () {
          thread.interrupt ();
          reThread.interrupt0 (this);
          protected synchronized void interrupt0(ReThread reThread) {
          thread.interrupt();
          ex.printStackTrace();
          ex.printStackTrace ();
          } catch(InterruptedException ignored) { }
  • Java2MicroEdition . . . . 1 match
          * Profile : Mobile Information Device Profile (MIDP)
          그림을 보면 맨 아래에 MID, 즉 휴대전화의 하드웨어 부분이 있고 그 위에는 Native System Software가 존재하며 그 상위에 CLDC가, 그리고 MIDP에 대한 부분이 나오는데 이 부분을 살펴보면, MIDP Application과 OEM-Specific Classes로 나뉘어 있는 것을 알 수 있다. 여기서의 OEM-Specific Classes라는 것은 말 그대로 OEM(Original Equipment Manufacturing) 주문자의 상표로 상품을 제공하는 것이다. 즉, 다른 휴대전화에서는 사용할 수 없고, 자신의(같은 통신 회사의) 휴대전화에서만 독립적으로 수행될 수 있도록 제작된 Java또는 Native로 작성된 API이다. 이는 자신의(같은 통신 회사의) 휴대전화의 특성을 잘 나타내거나 또는 MIDP에서 제공하지 않는 특성화된 클래스 들로 이루어져 있다. 지금까지 나와있는 많은 MIDP API들에도 이런 예는 많이 보이고 있으며, 우리나라의 SK Telecom에서 제공하는 SK-VM에도 이런 SPEC을 가지고 휴대전화의 특성에 맞는 기능, 예를 들어 진동 기능이나, SMS를 컨트롤하는 기능 들을 구현하고 있다. 그림에서 보듯이 CLDC는 MIDP와 OEM-Specific Classes의 기본이 되고 있다.
          * [http://zeropage.org/~dduk/development/j2me/midp-2_0-src-windows-i686.zip midp 2.0 (win용)]
          * [http://eclipseme.sourceforge.net/ eclipse j2me plugin]
  • JavaScript/2011년스터디/7월이전 . . . . 1 match
          * http://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work
          * HTML은 self closing이 안된다는 내용인것 같네요. 다시 읽어봐야겠어요 - [서지혜]
          * 공부하면 할수록 HTML이라던가 웹에 대히 공부해야겠다는 생각만 듭니다. javascript만 사용한다는 것은 무리인것 같아요. 이번에는 연속적으로 키보드 이벤트를 받는 문제였는데 생각보다 쉽지 않네요ㅠ 은 innerHTML은 또 처음 들어요;; 여튼 더 공부하겠습니다!! - [박정근]
          * 오늘은 PairProgramming으로 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보았는데 setInterval 함수를 사용하여 계속 페이지 주소를 바꿔주는 부분까지 성공했습니다. 처음에는 setTimeout 함수를 사용해서 생각처럼 제대로 작동하지 않았어요. 다음주엔 새내기가 스터디에 합류할텐데 매우 기대됩니다. 우리가 했던것들을 설명해주고 같이 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보려고 해요. 시간이 너무 걸리지 않도록 어떻게 접근할지 주말에 미리 생각해보겠습니다. - [김수경]
          * PairProgramming으로 위의 주소로 들어가면 보이는 URLHunter를 만드는데 도전하였습니다. 제가 혼자 생각할 때에는 어디서부터 어떻게 접근해야 할지 막막했었는데 Pair로 하니까 점점 먼가가 되가는것 같았어요. 어떻게 하면 주소창을 마음데로 조작 할 수 있는지 더 고민해 봐야겠습니다. - [박정근]
  • JavaScript/2011년스터디/박정근 . . . . 1 match
          document.write("Infor : "+s,"<br>")
          for (var i in person)
          for (var i in person)
  • JavaStudy2002 . . . . 1 match
          * 교재: Moa:ThinkingInJava
          * ["Java"], ["Eclipse"], ["JUnit"], ["TestDrivenDevelopment"], ["TestFirstProgramming"]
          * 여러분 CVS에 여러분 소스좀 올리세요. 왜 여태 암도 ;; --["neocoin"]
          * 그럼 해당 소스를 가지고 오세요. 같이 올려 봅시다. --["neocoin"]
  • JavaStudy2002/영동-2주차 . . . . 1 match
         Class main--메인함수 클래스
         public class main{
          public static void main(String[] args)
          System.out.println("RandomWalk");
          public int x=0;
          public int y=0;
          public int way;
          public int count=0;
          way=rand.nextInt()%8;
          System.out.print("\n");
          public int board[][]={
          for(int i=0;i<5;i++)
          for(int j=0;j<5;j++){
          System.out.print(board[i][j]);
          System.out.print("\t");
          System.out.print("\n");
  • JavaStudy2004/이용재 . . . . 1 match
         import javax.swing.*;
         public class HumanBeing
          private String name;
          private int statue;
          public HumanBeing()
          name = JOptionPane.showInputDialog("이름 입력");
          System.out.println(name);
          JOptionPane.showMessageDialog(null, "I am taking a rest =.=;");
          JOptionPane.showMessageDialog(null, "I am studying T.T");
          public static void main(String [] args)
          HumanBeing Lee = new HumanBeing();
  • JavaStudy2004/자바따라잡기 . . . . 1 match
          자바는 가전 제품에 들어갈 소프트웨어를 만들기 위해 탄생했다. 자바를 개발한 사람은 선 마이크로시스템즈 사의 제임즈 고슬링(James Gosling)이라는 사람이다. 그는 특정한 컴퓨터 칩에 대해 컴파일하여야 하는 널리 알려진 컴퓨터 언어인 C 언어의 문제점, 또 가전 제품의 긴 수명으로 인한 완벽한 호환을 가진 소프트웨어의 개발 요구, 가전 제품에 사용될 소프트웨어의 높은 신뢰성 필요 등의 문제에 대한 해결방안을 모색 해야만 됬다.
          * No More Typedefs, Defines, or Preprocessor
          * No More Multiple Inheritance
          * No More Operator Overloading
          * No More Pointers
          출전 : 1997년 9월호 디스커버 잡지 72쪽에 실린, David Gelernter의 "Truth, Beauty, and the Virtual Machine".
          * http://zeropage.org/~iruril/jdk-1_5_0_01-windows-i586-p.exe
          * http://idaizy.com/util/eclipse-SDK-3.0-win32.zip
         http://myhome.naver.com/histidine/start/start_home.htm
         http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html
  • JavaStudy2004/클래스상속 . . . . 1 match
          이러한 메커니즘을 subclassing이라고부른다.
          예를 들어 Motorcycle클래스와 같이 Car라는 클래스를 만드는 것을 생각하자. Car와 Motorcycle은비슷한 특징들이 있다. 이 둘은 엔진에 의해 움직인다. 또 변속기와 전조등과 속도계를 가지고 있다. 일반적으로 생각하면, Object라는클래스 아래에 Vehicle이라는 클래스를 만들고 엔진이 없는 것과 있는 방식으로 PersonPoweredVehicle과 EnginePoweredVehicle 클래스를 만들 수 있다. 이 EnginePoweredVehicle 클래스는 Motorcycle, Car, Truck등등의 여러 클래스를 가질 수 있다. 그렇다면 make와 color라는 속성은 Vehicle 클래스에 둘 수 있다.
          만일 하위클래스에서 상위클래스의 메소드의 이름과 인자의 타입을 똑같이 가진 메소드를 정의한다고 하면 어떻게 되는가? 이것은 계층적으로 아래에 있는 것이 먼저 실행되게 되어 있다. 이러한 방식으로 임의로 상의클래스의 메소드를 감추고 하위클래스에 필요한 메소드를 정의할 수 있다. 바로 중복(overriding)이라고 부르는 것이다.
         === Point 클래스 ===
         import javax.swing.JOptionPane;
         public class Point {
          private int x;
          private int y;
          public Point() {
          public Point(int aX, int aY) { //생성자 입니다.
          public int getX() {
          public int getY() {
          public void setX(int Ax) {
          public void setY(int Ay) {
          public String getName() {
          return "Point";
          public void Say(String str) {
          public void Say(int temp) {
          String str = Integer.toString(temp);
          public static void main(String[] args) {
  • JavaStudyInVacation/과제 . . . . 1 match
          * AWT와 SWING이 무엇인지 알아보고, 그 차이점에 대해서 알아보기. 그리고 어떤것을 사용하는것이 더 좋다고 생각하는지, 그리고 왜 그렇게 생각한는지...?
          * SWING을 사용하여 버튼이 있고, 그 버튼을 누르면 간단한 메시지를 출력하는 자바 에플리케이션 작성해 보기.
          * 다음과 같은 네트워크를 사용하는 간단한 에플리케이션 만들어 보기. (SWING 이나 AWT 사용 안함)
          * SWING을 사용하여 제작해야 한다.
         ["JavaStudyInVacation"]
  • JollyJumpers/오승균 . . . . 1 match
         #include <iostream>
         using namespace std;
         const int size = 65535;
         void check_possible (int max); // Jolly판단 자체가 가능한 수열인가 검사
         void check_Jolly (int max, int ar[]); // Jolly여부를 판단
         void show_num (int max, int ar[]); // 입력한 숫자 출력
         int main()
          int array[size];
          int num;
          int total_num = 0;
          int i = 0;
          while (cin >> num)
          continue;
          continue;
         void check_possible (int max)
         void check_Jolly (int max, int ar[])
          int temp;
          for (int i = 1; i < max - 1; i++)
          for (int j = 0; j < max - 1; j++)
         void show_num (int max, int ar[])
  • JosephYoder방한번개모임 . . . . 1 match
          * [https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=1pibLA94VQ8Z1cckW8IOsedbQ9joDuCwwafH93jHDgv3l-ASNn_QW2rGhxrWT&hl=en_US Refactoring Testing and Patterns]
          * Floss Refactoring. 다음에 리팩토링해야지, 언제 날 잡고 리팩토링해야지가 아닌 항상 그 때 할 수 있는 리팩토링을 하자.
          * Naming이 중요하다.
         리펙토링 기본 기법에 관해서는 기본적으로 Rename과 함수 분할 등을 Martin Fowler이 지은 Refactoring책을 통해 알수있다고 했다 이러한 리펙토링을 이용하여 청소할 수 있고 리펙토링은 중요하다고 했다. 이거 좋군. 딱 들은 생각. 우선 리펙토링할때는 이름이 최우선적으로 다루어져야한다고 했는데 가장 설명하기 좋고 듣기도 편했던 부분이다. 그 이유는 이름부터가 단축이면 못알아먹기 때문에~~~!! 이라고했다. 그래서 나는 앞으로 길더라도 의미가 되는 단어를 쓰기로 결심했다. 괜히 이름 단축시키지 말자고.
         Test기법에 관해 캔트백의 예를 들며 말해줬는데 코드를 만들때는 되게하고, 완성하고, 최적화시키는 순서로 만들라고했다. 그래서 난 더럽게 우선 돌아가게 짠다. 고 위안했다. Test가 되게 하고 Refactoring을 하고 다시 돌아가게 하고. 순환관계를 다시 보기도했다. 그렇게 하면 영향이 덜가고 잘 돌아가겠지? 라고 생각했다.
         Refactoring과 Pattern은 누가 누구에 속한 관계가 아니라서 적절히 써야한다고했다. 교집합이었다 그림은. 그래 적절히 써야지라고 생각했다.
         강조했던것은 Agile과 Refactoring의 상관관계였는데 둘다 얽히면 굉장한 시너지를 내기 때문에 목적은 달라도 병행해서 쓰면 좋다고했다. Agile을 지금 쓰는 사람 있냐고 물어봤는데 손들기는 뭐했다. Face-to-Face, pair 프로그래밍. Communication 만세다! Agile기법에 대해 Refactoring에 대해 자신의 이념, 이상이 들어간 코드를 만드는 프로그래머가 반대를 한다면 Pair프로그래밍을 통해 '너만의'코드가 아닌 '우리'의 코드라는것을 인식시켜주는게 좋다고 했다. 근데 그런사람이 있을까? 여튼 경험에 우러나온 대답같았다.
         adaptiveobjectmodel은 Joseph이 연구하고 있는 분야로 Refactoring의 상황에 맞는 방법과 패턴의 쓰임세를 지정하는 모델이다. 현재 쓰이는 패턴을 모델화해서 정리해서 했다고한다. 책에서나 보던것을 좀더 정확하고 명확하게 근거있게 설명하는것 같았다. 그리고 Refactoring이 필요한 이유에 대해서는 실제로 이렇게 하면 성공을 하기 때문에 리펙토링을 하는것이 좋다고했는데 이것은 다른것에 비해 약한 근거라고했는데 그 이유는 리펙토링을 안한 더러운 코드도 성공을 하기 때문이라고 했다. 하지만 자신있게 말하자면 리펙토링을 하는것은 좋다고했다.
         변화 -> 추상화 이고 리펙토링이 잘못됬을 경우 그 결과를 뒤집기는 좀 힘들다고했다. 패턴을 알면 장점이 많단다. 초보자가 패턴을 아는척 하면 다친단다. 테스팅과 패턴을 초보자가 하면 좋다. Refactoring을 좀더 잘할려면 첫 걸음은 Rename부터.. 엄청난 프로그래머는 만드는것이 패턴으로 만들어질 수 있지만 대부분 그렇지 않다고 한다. 그러므로 리펙토링을 통해 수준을 높이는 훈련을 해놓는것이 좋다고한다. 그렇게 하면 의식하지 않아도 된단다.
         여러모로 Refactoring에서 나오는 Pattern과 Holub이 주장하는 Design Pattern과는 많았고 옆에서 계속 번역해주시는 창준선배님을 보면서 참 나도 영어 듣기가 녹슬었구나 하는 생각이 들었다. FPS에서 영어를 배워봐야하나. 여러사람이 다양하게 생각하는 Refactoring과 Pattern에 대해 다시한번 좀더 연구할 생각이드는 시간이었다.
          * agile is good for refactoring, 애자일을 사용하면 설계도 리팩토링할 수 있다.
          * merciless deadline
          * refactoring : deciplined technique
          * Internal structure
  • KDPProject . . . . 1 match
          * ["디자인패턴"] - OpeningStatement. 처음 DesignPatterns 에 대해 공부하기 전에 숙지해봅시다. 순서는 ["LearningGuideToDesignPatterns"]
          *["DPSCChapter1"] - Introduction - 현재 1.3 진행중.
          * http://www.jini-club.net/ - 지니클럽 디자인 패턴 게시판
          * http://www.artima.com/javaseminars/modules/DesPatterns/
  • LinearAlgebraClass . . . . 1 match
         길버트 스트랭은 선형대수학 쪽에선 아주 유명한 사람으로, 그이의 ''Introduction to Linear Algebra''는 선형대수학 입문 서적으로 정평이 나있다. 그의 MIT 수업을 이토록 깨끗한 화질로 "공짜로" 한국 안방에 앉아서 볼 수 있다는 것은 축복이다. 영어 듣기 훈련과 수학공부 두마리를 다 잡고 싶은 사람에게 강력 추천한다. 선형 대수학을 들었던(그리고 학기가 끝나고 책으로 캠프화이어를 했던) 사람이라면 더더욱 추천한다. (see also HowToReadIt 같은 대상에 대한 다양한 자료의 접근) 대가는 기초를 어떻게 가르치는가를 유심히 보라. 내가 학교에서 선형대수학 수강을 했을 때, 이런 자료가 있었고, 이런 걸 보라고 알려주는 사람이 있었다면 학교 생활이 얼마나 흥미진지하고 행복했을지 생각해 보곤 한다. --JuNe
  • LinuxSystemClass . . . . 1 match
         [LinuxSystemClass/Report2004_1] - PosixThread 를 이용, 스레드를 만들고 그에 따른 퍼포먼스 측정.
         [LinuxSystemClass/Exercise2004_1]
         [LinuxSystemClass/Exercise2004_2]
         [LinuxSystemClass/Exercise2004_3]
         === examination ===
         [LinuxSystemClass/Exam_2004_1]
         개인적으로 교재가 마음에 든다. 단, 제대로 공부할 것이라면 가능한 한 원서를 권한다. 한서의 경우 용어의 혼동문제와, 중간 오역문제가 눈에 띈다. (inexpensive를 expensive 로 정 반대의 뜻으로 해석한) 뭐, 물론 그럼에도 불구하고 아마 사람들은 한서 읽는 속도가 원서 읽는 속도의 3배 이상은 될테니. 알아서 잘.
         학교 수업공부를 하거나 레포트를 쓰는 경우 위의 학교 교재와 함께 'The Design of the Unix Operating System' 을 같이 보면 도움이 많이 된다. 해당 알고리즘들에 대해서 좀 더 구체적으로 서술되어있다. 단, 책이 좀 오래된 감이 있다.
  • MFC/DynamicLinkLibrary . . . . 1 match
         #define _MFC_
         Win32API역시도 DLL을 통해서 구현이 되어있다.
         = Runtime Dynamic Linking =
         early binding, load-time dynamic linking
         runtime dynamic linking
         runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
          == DLL Interface ==
          == DllMain() 함수 ==
          독립적 실행은 불가능하지만 main함수의 변형된 형태를 포함한다. 이 곳에서는 dll이 사용되기 전에 초기화되는 내용들이 포함되게 된다. DLL초기 로드시 운영체제가 호출한다.
  • MFC/HBitmapToBMP . . . . 1 match
         BOOL CImageTool::ExportAsBMP(int type, char *filename, CDC *pDC,
          HBITMAP hBitmap, int nWidth, int nHeight)
          unsigned int size, palsize;
          header.bfOffBits = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+
         BYTE *CImageTool::GetBMP(int type, int w, int h, HBITMAP hBitmap,
          HDC hdc, unsigned int *size)
          LPBITMAPINFO lpvBits;
          int width,palsize;
          *size = sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*palsize+width*h;
          lpvBits = (BITMAPINFO *)malloc(*size);
          lpbi = (BYTE *)lpvBits+sizeof(BITMAPINFOHEADER) +
          lpvBits->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
          lpvBits->bmiHeader.biPlanes = 1;
  • MFC/ObjectLinkingEmbedding . . . . 1 match
         #define _MFC_
         || QueryInterface() || 특정한 인터페이스가 객체에 의해 지원되는지를 검사. 지원된다면 포인터가 리턴된다. ||
         CDocument -> COleDocument -> COleLinkingDoc -> COleServerDoc
          || OnDraw() || 객체가 in-place 활성화 되었을때 서버에 있는 뷰클래스의 OnDraw() 함수에 의해서 그려진다. 따라서 컨테이너에 잇는 요소를 그리는 일은 서버측에서 구현되어야 하는 것이다. ||
          컨테이너측에는 COleDocument, COleLinkingDoc 이 존재한다. 전자의 경우는 in-place 활성화를 지원하며, 후자는 링크방식을 지원한다.
  • MFC/Serialize . . . . 1 match
         #define _MFC_
         = inner Document Class =
          CPainterDoc();
          DECLARE_DYNCREATE(CPainterDoc)
          //{{AFX_VIRTUAL(CPainterDoc)
          if (ar.IsStoring())
          // TODO: add storing code here
          // TODO: add loading code here
          IsStoring() 을 통해서 저장인지 로드인지를 판별한다.
          (float, double, BYTE, int, LONG, WORD, DWORD, CObject*, CString, SIZE, CSize, POINT, CPoint, RECT, CRect, CTime, CTimeSpan 이 오버라이딩 되어있다.)
         Introspection 기능이 있는 다른 언어들에서의 Serialize 하는 모습에 대해서는 반드시 관찰해볼 필요가 있음.~ --[1002]
  • MFC_ . . . . 1 match
         == Index ==
         2. [Dubble_Buffering]
  • McConnell . . . . 1 match
         == Intent ==
  • MentorOfArts . . . . 1 match
         서강대학교 컴퓨터 학과 스터디그룹. Interwiki 로는 '''{{{~cpp Moa:}}}''' 를 이용합니다.
         http://purl.oclc.org/NET/moa/moin.cgi/
  • Metaphor . . . . 1 match
         원문 : http://www.extremeprogramming.org/rules/metaphor.html
         Choose a system metaphor to keep the team on the same page by naming classes and methods consistently. What you name your objects is very important for understanding the overall design of the system and code reuse as well. Being able to guess at what something might be named if it already existed and being right is a real time saver. Choose a system of names for your objects that everyone can relate to without specific, hard to earn knowledge about the system. For example the Chrysler payroll system was built as a production line. At Ford car sales were structured as a bill of materials. There is also a metaphor known as the naive metaphor which is based on your domain itself. But don't choose the naive metaphor unless it is simple enough.
  • MineSweeper/문보창 . . . . 1 match
         // no10189 - Minesweeper(a)
         #include <iostream>
         #include <vector>
         using namespace std;
         const int MAX = 100;
         bool inMine(vector<int> & mine, int & nField, int * size);
         void mineSweep(vector<int> & mine, int & nField, int * size);
         int main()
          vector<int> mine; // 입력을 저장할 벡터
          int size[MAX]; // 행과 열만을 저장할 배열
          int nField = 0; // 지뢰 게임 수
          if(!inMine(mine, nField, size))
          mineSweep(mine, nField, size);
         bool inMine(vector<int> & mine, int & nField, int * size)
          int i, n, m;
          int count = 0;
          while(cin >> n >> m) // 입력
          cin >> temp;
          mine.push_back(1); // * -> 1
          mine.push_back(0); // . -> 0
  • MiningZeroWiki . . . . 1 match
          활동 아이디어 n조 * (OHP필름2장, 보드마커, IndexCard 1장, 지우개용휴지2장 ), 접착테이프
          * 1안 : 주최자가 시작점을 주고, 2인 일조가 되어 OHP에 보드마커를 이용해 링크 방향으로 MindMap 그린다. 차후 큰 장소에 OHP를 합쳐본다.
  • MobileJavaStudy/Tip . . . . 1 match
         InputStream is = this.getClass().getResourceAsStream("readme.txt");
          int ch;
          System.out.print((char) ch);
          System.out.println(e);
  • MoinMoinMailingLists . . . . 1 match
         There are two mailing lists for MoinMoin:
          * http://lists.dragon-ware.com/mailman/listinfo/moin-users
          Talk about ''using'' MoinMoin (very low-traffic).
          * http://lists.dragon-ware.com/mailman/listinfo/moin-dev
          Talk about MoinMoin development, bugs, new features, etc. (low-traffic)
  • MoniWiki/HotKeys . . . . 1 match
          ||I||action=info ||[[Icon(info)]] 파란색 i||
          ||P||action=print ||[[Icon(print)]] 프린터||
          ||Q, S, R(Safari only)[[BR]]또는 F3(Firefox only)|| ||[[Icon(search)]] FindPage ||
          ||T|| ||TitleIndex ||
          ||``<ESC>``||Go 'into'/'out of' the 'Go' form|| ||
          ||Z + ``<BACKSPACE>``||Go 'into' the 'Go' form|| ||
          * MoinMoin:MoinMoinExtensions/Hotkeys
  • MoreEffectiveC++/Basic . . . . 1 match
         == Item 1: Distinguish between pointers and references. ==
          * Item 1: Pointer와 Reference구별해라.
          Pointers use the "*" and "->" operators, references use "." [[BR]]
          string& rs; // Reference(참조)가 초기화가 되지 않아서 에러
          string s("xyzzy"); // 이건 된다 신기하네
          string& rs = s;
         아직 string써본적 한번도 없다. 반성..
          void printDouble(const double& rd)
          void printDouble (const double* pd)
          cout << *pd // pd가 null인지 검사 해야 한다. pointer니까.
         pointer의 유의 사항인 null에 관한 내용을 다시 알려준다.
          string s1("Nancy"); // 이제는 무슨 퀴즈 같다.
          string s2("Clancy");
          string& rs = s1;
          string* ps = &s1;
         사견: Call by Value 보다 Call by Reference와 Const의 조합을 선호하자. 저자의 Effective C++에 전반적으로 언급되어 있고, 프로그래밍을 해보니 괜찮은 편이었다. 단 return에서 말썽이 생기는데, 현재 내 생각은 return에 대해서 회의적이다. 그래서 나는 COM식 표현인 in, out 접두어를 사용해서 아예 인자를 넘겨서 관리한다. C++의 경우 return에 의해 객체를 Call by Reference하면 {} 를 벗어나는 셈이 되는데 어디서 파괴되는 것인가. 다 공부가 부족해서야 쩝 --;
          오해의 소지가 있도록 글을 적어 놨군요. in, out 접두어를 이용해서 reference로 넘길 인자들에서는 in에 한하여 reference, out은 pointer로 new, delete로 동적으로 관리하는것을 의도한 말이었습니다. 전에 프로젝트에 이런식의 프로그래밍을 적용 시켰는데, 함수 내부에서 포인터로 사용하는 것보다 in에 해당하는 객체 사용 코딩이 편하더군요. 그리고 말씀하신대로, MEC++ 전반에 지역객체로 생성한 Refernece문제에 관한 언급이 있는데, 이것의 관리가 C++의 가장 큰 벽으로 작용하는 것이 아닐까 생각이 됩니다. OOP 적이려면 반환을 객체로 해야 하는데, 이를 포인터로 넘기는 것은 원칙적으로 객체를 넘긴다고 볼수 없고, 해제 문제가 발생하며, reference로 넘기면 말씀하신데로, 해당 scope가 벗어나면 언어상의 lifetime이 끝난 것이므로 영역에 대한 메모리 접근을 OS에서 막을지도 모릅니다. 단, inline에 한하여는 이야기가 달라집니다. (inline의 코드 교체가 compiler에 의하여 결정되므로 이것도 역시 모호해 집니다.) 아예 COM에서는 OOP에서 벗어 나더라도, 범용적으로 쓰일수 있도록 C스펙의 함수와 같이 in, out 의 접두어와 해당 접두어는 pointer로 하는 규칙을 세워놓았지요. 이 설계가 C#에서 buil-in type의 scalar형에 해당하는 것까지 반영된 것이 인상적이 었습니다.(MS가 초기 .net세미나에서 이 때문에 String 연산 차이가 10~20배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
         reinterpret_cast<type>(expression)
          * ''reinterpret_cast<type>(expression)'' 은 차후 다시 읽은뒤 정리한다.
         #define static_cast(TYPE, TEXPR) ((TYPE) (EXPR))
  • MultiplyingByRotation . . . . 1 match
         [http://online-judge.uva.es/p/v5/550.html 원문보기]
         === About Multiplying By Rotation ===
         입력은 텍스트파일이다. 진수,첫번째 숫자의 마지막 숫자(the least significant digit of the first factor)와 두번째 숫자(second factor)로 구성된 3개의 수치가 한줄씩 입력된다. 각 수치는 공백으로 구분된다. 두번째 숫자는 해당 진수보다 적은 숫자이다. 입력파일은 EOF로 끝난다.
         === Input ===
          || 김회영 || c++ || ? ||[MultiplyingByRotation/김회영]||
          || 문보창 || c++ || ? ||[MultiplyingByRotation/문보창]||
          || 곽세환 || c++ || ? ||[MultiplyingByRotation/곽세환]||
  • NoSmokMoinMoinVsMoinMoin . . . . 1 match
         || 기능 || Moin 1.1 || Nosmok moinmoin || 비고 ||
         || 속도 || 느림 || 보통 || 이건 좀 개인적 느낌임. 다른 사람 생각 알고 싶음. nosmok moinmoin 은 action 으로 Clear History 지원 ||
         || login || u-id || id/pass || 이건 nosmok 쪽이 더 익숙하고 편리한 형태라 생각. 기존 u-id 식 로그인이 사람들 고생 좀 시킨것을 생각하면.||
         || page 별 접근권한 || 지원 || 지원 || login 해야만 글을 쓸 수 있는 페이지들 지정가능(nosmok)||
         || 부가기능 || Hot Draw Plugin 지원, 간단한 벡터 그래픽 첨부 가능. 페이지 미리보기 기능, RecentChanges 에 변경사항에 대한 Comment 기능 지원. go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌.(1.1 이상) || go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌. InterWiki 등록을 위키내에서 수정가능. || . ||
         || 기타 Spec || [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/moin/dist/CHANGES?rev=1.111&content-type=text/vnd.viewcvs-markup CHANGES] 참조 || NoSmok:노스모크모인모인 참조 || . ||
          * nosmok moin인 moin 0.9를 기반으로 하여 업그레이드 되었고, moinmoin 1.1은 http://sf.net 에 올라와 있는 버전들의 가장 상위 버전입니다. 석천 차이좀 간단히 써주라. --["상민"]
         moinmoin 1.1 에서 타이틀바에 있는 숫자가 보기 좀 거슬리네요... 노스모크는 색깔 자체가 노스모크에 거주하는 사람들에겐 매우 친숙하지요..^^ --창섭
         전 현재 배포판인 MoinMoin 1.0 을 커스터마이징해서 썼으면 합니다. ''(http://acup.wo.to 에 가보시면 MoinMoin 1.0 을 커스터마이징한 위키를 구경할 수 있습니다.)'' ["노스모크모인모인"]에도 현재 욕심나는 기능이 많긴 하지만 MoinMoin 1.0 의 AttachFile 기능이 참 유용하다고 생각하고 있습니다. 그 밖에 Seminar:YoriJori 프로젝트가 다소 정체되어 있다는 느낌이 들기도 한 것이 이유가 될수 있겠습니다. MoinMoin 1.0 설치 및 커스터마이징은 2 ManDay 정도만 투자하면 가능하리라 생각됩니다. --["이덕준"]
  • NumberBaseballGame/jeppy . . . . 1 match
         #include <stdio.h>
         #include <stdlib.h>
         #include <time.h>
         #include <conio.h>
         void main() {
          int i;
          printf("%d input number : ", i+1);
          printf(" 중복된 숫자를 입력하시면 안됩니다. 다시 입력해주세요.\n");
          //printf("%d : %s\n", i, number_log[i]);
          printf("You lose~\nThe answer is %c%c%c", hidden_num[0], hidden_num[1], hidden_num[2]);
          int number[3];
          int i, temp_i, num, j;
          printf("Make number..\n");
          //printf("%c %c %c \n", p[0], p[1], p[2]);
          //printf("%d %d %d \n", number[0], number[1], number[2]);
          int i, j, k;
          int strike = 0;
          int ball = 0;
          printf("You win~!!\n");
          printf("out!!\n");
  • NumericalAnalysisClass . . . . 1 match
         강의내용 : 최근의 수치해석 수업은 그래픽스 수업의 선수과목으로서 성격이 이전과 달라졌다. 주로 line, curve, plane, matrix 등 그래픽스와 관련된 내용을 배운다.
          * ["NumericalAnalysisClass/Report2002_2"] - ["CubicSpline/1002"]
         === examination ===
         ''Object-Oriented Implementation of Numerical Methods : An Introduction with Java and Smalltalk'', by Didier H. Besset.
  • ObjectOrientedDatabaseManagementSystem . . . . 1 match
         Malcolm Atkinson을 비롯한 여러 사람들이 그들의 영향력 있는 논문인 The Object-Oriented Database Manifesto에서, OODBMS에 대해 다음과 같이 정의하였다.
  • ObjectOrientedProgramming . . . . 1 match
         Object Oriented Programming
         == OOP Definition ==
         Object-oriented programming is based in the principle of recursive design.
         1. Everything is an object.
         2. Objects perform computation by making requests of each other through the passing of messages.
         3. Every object has it's own memory, which consists of other objects.
         4. Every object is an instance of a class. A class groups similar objects.
         5. The class is the repository for behabior associated with an object.
         6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy.
  • ObjectProgrammingInC . . . . 1 match
         = Object Programming In C =
         #include <stdio.h>
          int attrib;
          void (*method1)(int);
         void Operator1(int x) {
          printf("%d\n", x);
         int main()
          testClass instanceClass;
          instanceClass.method1= &Operator1;
          instanceClass.method1(3); // or Operator1(3);
          int attrib;
          void (*method1)(int);
  • ObjectWorld . . . . 1 match
          * http://www.freemethod.org:8080/bbs/UML1-SAintro.ppt
         첫번째 Session 에는 ["ExtremeProgramming"] 을 위한 Java 툴들에 대한 간단한 언급이였습니다. 제가 30분 가량 늦어서 내용을 다 듣진 못했지만, 주 내용은 EJB 등 웹 기반 아키텍쳐 이용시 어떻게 테스트를 할것인가에 대해서와, Non-Functional Test 관련 툴들 (Profiler, Stress Tool) 에 대한 언급들이 있었습니다. (JMeter, Http Unit, Cactus 등 설명)
         Http Unit 에 대해선 좀 회의적인 투로 설명을 하신것 같고, (이정도까지 테스트 할까..에 가까운) ["ExtremeProgramming"] 에서의 TDD 스타일은 따로 취급되었다라는 생각이 들었다는. (XP에서의 테스트를 먼저 작성하라는 이야기에 대해서 그냥 TP를 읽는 수준으로만 넘어간것 보면. 코딩 완료이후 테스트를 기본이라 생각하고 설명하셨다 생각됨.)
          * Middleware, Application Server - Architecture 를 Instance 화 시킨 실질적 제품들. 전체 시스템 내에서의 역할에 대한 설명으로서의 접근.
          * Framework - 특정 Domain 과 관련한 모듈을 만들기 위한 library
         ''Haven't read it. If I gave advice and I were to advise /you/, I'd advise more testing and programming, not more theory. Still, smoke 'em if ya got 'am.
         [From a [http://groups.yahoo.com/group/extremeprogramming/message/52458 thread] in XP mailing list]
  • Omok/재니 . . . . 1 match
         #include <iostream.h>
         #include <conio.h>
         int key, x = 9, y = 9;
         int winner = 0;
         int main()
          while(winner == 0)
          if (winner != 0)
          continue;
          cout << "Winner is ";
          if(winner == 1)
          else if(winner == 2)
          for (int i = 0 ; i < 19 ; i++)
          for (int j = 0 ; j < 19 ; j++)
          int cx, cy, num;
          winner = 2;
          winner = 1;
          winner == 0;
         #include <iostream>
         using namespace std;
          int m_Board[19][19];
  • Ones . . . . 1 match
         === Sample Input ===
  • OperatingSystem . . . . 1 match
         [[include(틀:OperatingSystems)]]
         == What is OS(OperatingSystem)? ==
         In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. Additionally, it provides a foundation upon which to run application software such as word processing programs and web browsers.
         일종의, [[SeparationOfConcerns]]라고 볼 수 있다. 사용자는 OperatingSystem (조금 더 엄밀히 이야기하자면, [[Kernel]]) 이 어떻게 memory 와 I/O를 관리하는지에 대해서 신경쓸 필요가 없다. (프로그래머라면 이야기가 조금 다를 수도 있겠지만 :) )
          * [[windows|MicrosoftWindows]]
          * [[Linux]]
          * Palm, WindowsCE
  • OurMajorLangIsCAndCPlusPlus/limits.h . . . . 1 match
          == C++ Integer Limits ==
         ||SCHAR_MIN ||부호있는 char형의 최소값 ||–128 ||
         ||CHAR_MIN ||char형의 최소값 ||–128; 0 if /J option used ||
         ||SHRT_MIN ||short형의 최소값 ||–32768 ||
         ||INT_MIN ||int형의 최소값 ||–2147483648 ||
         ||INT_MAX ||int형의 최대값 ||2147483647 ||
         ||UINT_MAX ||부호없는 int형의 최대값 ||4294967295 (0xffffffff) ||
         ||LONG_MIN ||long형의 최소값 ||–2147483648 ||
  • PHP . . . . 1 match
          PHP약어를 풀어쓰면 PHP: Hypertext Preprocessor입니다. 약어의 첫번째 글자가 약어이기 때문에 많은 사람에게 혼란을 줍니다. 이와 같은 약어를 재귀적 약어라고 부릅니다. 궁금하신 분은 Free On-Line Dictionary of Computing사이트를 방문해보세요.
         || [PHP Programming] ||
          * [PHPStudy2005/RWAPMInstall]
          * [PHP Programming/HtmlTag]
          * [zyint/php]
          * [http://www.phpschool.com/v2/index.html PHP School]
          * [http://ko.blog.influx.kr/2012/04/php.html PHP: 잘못된 디자인의 프랙탈]
  • PHPStudy2005 . . . . 1 match
          * [PHPStudy2005/RWAPMInstall]
          * [PHP Programming/HtmlTag]
  • PNGFileFormat/ImageData . . . . 1 match
         현재는 compression method 0만 있음. zlib의 inflate, deflate와 같다. 최대 윈도우 사이즈는 32768바이트
         === Inflate ===
  • ParserMarket . . . . 1 match
         This is a marketplace for your parsers. Please state your name, your email, and the release your parser is developed for (if you used a CVS snapshot, also state the revision number).
         Use a special pagename {{{~cpp ["parser/yourParser.py"]}}} and start your parser with the line {{{~cpp
         This way, the parser can directly be put on the page without any modification, and as easily copied from that page. See the examples below.
         ||HTML: ["parser/html.py"]||Christian Bird||chris.bird@lineo.com||1.0|| ||
         There are also some UtilityScripts.
         If you are not familiar with Python and/or the MoinMoin code base, but have a need or an idea for a parser, this is the place to ask for it. Someone might find it useful, too, and implement it.
  • PatternTemplate . . . . 1 match
         == Intent ==
  • PragmaticVersionControlWithCVS/CreatingAProject . . . . 1 match
         || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] || [PragmaticVersionControlWithCVS/UsingModules] ||
         = Creating a Project =
         == Creating the Initial Project ==
         == Structure Within the Project ==
  • PragmaticVersionControlWithCVS/HowTo . . . . 1 match
         || [PragmaticVersionControlWithCVS/Getting Started] || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
         == Organizing a Version Control System ==
  • PragmaticVersionControlWithCVS/UsingTagsAndBranches . . . . 1 match
         || [PragmaticVersionControlWithCVS/CommonCVSCommands] || [PragmaticVersionControlWithCVS/CreatingAProject] ||
         = Using Tags and Branches =
         == Tags, Branches and Tagging ==
         == Creating a Release Branch ==
         == Working in a Release Branch ==
         == Generating a Release ==
         == Fixing Bugs in a Release Branch ==
         == Working With Experimental Code ==
         == Merging The Experimental Branch ==
  • PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 1 match
         || [PragmaticVersionControlWithCVS] || [PragmaticVersionControlWithCVS/Getting Started] ||
         == the Repository ==
         == Where Do Versions Come In? ==
         개발중심축(mainline) : 일반적인 개발환경하에서 개발자들은 동일한 코드 기반을 가지고 작업을 한다. 체크아웃, 개정판을 만들어서, 변경사항을 체크인하면 모든 개발자가 서로의 작업을 공유하게 되는 것이다. 이러한 개발흐름을 일컬어 개발중심축이라 함.
         mainline : 1.14 -> 1.15
         == Merging ==
         브랜치를 이용하면 한명의 개발자가 한개의 컴퓨터를 가지고도 릴리즈 버전의 버그 수정작업과 mainline상의 프로그램의 개발을 동시에 하는 것이 가능하다.
         이 경우 브랜치에서 수정된 사항이 mainline상에도 반영되어야할 필요가 있을때 이를 병합의 과정을 통해서 하는 것이 가능하다.
         == Locking Options ==
         '''Original'''
          public String getName() {
          public int getSize() {
          public String getName() {
          public int getSize() {
          public String getName() {
          public int getSize() {
  • ProgrammingLanguageClass/2006/EndTermExamination . . . . 1 match
         범위 : 6장 ~ 11장 (concept of programming language 6th ed)
         02, 05 년에 언어 디자인시 고려해야할 점에 대한 문제가 출제되어서 그쪽으로 공부를 많이 했지만 나오지 않았다는 점에서 의외였음. 디자인 이슈를 공부할 생각이라면 Pointer, Array, Abstraction, Subprogram 의 디자인 이슈에 대해서 공부하는 것이 좋을 듯함.
         a) c언어에서, switch문의 조건 넣는 부분에 모든 ordinal type이 들어갈 수 있는가?
         print Z;
         int fun(int *i)
         int i = 10, j =16
         a) 비지역 변수의 참조에 Static-Chain 기법에 대한 설명을 할 것
         b) 언어 개발자들이 Static-Chain 에 비해서 display 기법을 채택하게 되는 이유를 제시하시오.
          * upto terminate 해석에 따라서 답이 달라짐 종료 직전 -> 답은 True, 종료 시점을 의미한다면 답은 False
         for variable in [reverse] discrete_range loop
         up to ... (1) <어느 위치·정도·시점이> …까지(에), …에 이르기까지;<지위 등이> …에 이르러:up to this time[now] 지금껏, 지금[이 시간]까지는/I am up to the ninth lesson. 나는 제 9과까지 나가고 있다./He counted from one up to thirty. 그는 1에서 30까지 세었다./He worked his way up to company president. 그는 그 회사의 사장으로까지 출세했다. (2) [대개 부정문·의문문에서] 《구어》 <일 등>을 감당하여, …을 할 수 있고[할 수 있을 정도로 뛰어나]:You’re not up to the job. 너는 그 일을 감당하지 못한다./This novel isn’t up to his best. 이 소설은 그의 최고작에는 미치지 못한다./This camera is not up to much. 《구어》 이 카메라는 별로 대단한 것은 아니다./Do you feel up to going out today? 오늘은 외출할 수 있을 것 같습니까? 《병자에게 묻는 말》 (3) 《구어》 <나쁜 짓>에 손을 대고;…을 꾀하고:He is up to something[no good]. 그는 어떤[좋지 않은] 일을 꾀하고 있다./What are they up to? 그들은 무슨 짓을 하려는 것인가? (4) 《구어》 <사람이> 해야 할, …나름인, …의 의무인:It’s up to him to support his mother. 그야말로 어머니를 부양해야 한다./I’ll leave it up to you. 그것을 네게 맡기마./It’s up to you whether to go or not. 가고 안가고는 네 맘에 달려 있다./The final choice is up to you. 마지막 선택은 네 손에 달려 있다.
         [ProgrammingLanguageClass]
  • ProgrammingLanguageClass/Report2002_1 . . . . 1 match
         = Principles of Programming Languages =
         ※ 입력된 문장들이 제시된 문법(grammar)에 맞는지 판단하는 Recursive Descent Parsing 기법을 이용한 파서(parser)를 작성하시오.
          * Internal/external documentations
          | <term> <minus_operator> <expression>
         <factor> → <left_parenthesis> <expression> <right_parenthesis>
         <identifier> → any names conforming C identifier
         <minus_operator> → -
         <left_parenthesis> → (
         <right_parenthesis> → )
          * 입력: INPUT.TXT로 이름지어진 텍스트 파일
          * 출력: 주어진 문법에 따라 INPUT.TXT에 저장되어 있는 문장을 분석한다. 파싱(parsing)되는 중간과정을 <처리 예>와 같이 출력하고, 문법에 적합하면 “Yes,” 입력된 문장이 적합하지 않으면 오류 메시지와 “No”를 출력한다.
          * 각 파싱(parsing) 함수는 리턴하기 직전에 해당 non-terminal이 검색되었음을 알리는 메시지를 출력하여야 한다.
          printf("<expression> parsed.\n");
          printf("<identifier>: %s parsed.\n",token_string);
          * 어휘분석기(lexical analyzer)의 소스코드는 정수 변수 next_token, 문자열 변수 token_string, 함수 lexical()을 포함하여야 한다. 함수 lexical()은 입력 스트림을 분석하여 하나의 lexeme을 찾아낸 뒤, 그것의 token type을 next_token에 대입하고, lexeme 문자열을 token_string에 저장하는 함수이다.
          * 기타 구현 시 요구되는 세부 사항은 직접 결정하고, internal document에 기술한다.
         ["ProgrammingLanguageClass"]
  • ProjectAR/Design . . . . 1 match
         ==== CARInstanceItem ====
  • ProjectEazy . . . . 1 match
         == Link ==
         [TheChild'sAcquisitionOfLanguage], [아동언어습득이론] - 아동이 언어를 습득해서 문장을 만드는 과정
         [http://www.kssline.pe.kr/journalportal(0006).htm 접속 두 문화 1,2,3] - 윤송이박사 인터뷰
         [http://infocom.chonan.ac.kr/~limhs/ 천안대학교 임희석?교수]
          자답이네요. hangul모듈의 disjoint로 조합형으로 변환할 수 있군요. --[Leonardong]
  • ProjectPrometheus/BugReport . . . . 1 match
         Prometheus 의 버그 보고 페이지
          * notice변경 사항에 관하여, DB에 넣는 방향으로 바꾸던지(게시판을 하던지), file path 비의존적으로 바꾸어야 한다. 현재 file path문제로 직접 고쳐주어야 하는 상황이고, ant 로 배포시 해당 file의 쓰기 읽기 권한 문제로 문제가 발생한다. --["neocoin"]
          * ant build를 상민, 석천 두 계정 사이에 아무런 차이 없이 가능하도록 조정할수 있어야 한다. 문제는 내 계정이 이상하다는것 --["neocoin"]
          - 자주 바뀌는 부분에 대해서 Page -> Object Mapping Code Generator 를 만들어내거나, 저 부분에 대해서는 텍스트 화일로 뺌 으로서 일종의 스크립트화 시키는 방법(컴파일을 하지 않아도 되니까), 화일로 따로 빼내는 방법 등을 생각해볼 수 있을 것 같다.
          - 매번 FORM 으로 넘어가는 변수들이 바뀔때 HTML 내 FORM 변수들을 찾거나 WEB DEBUG 등으로 프로토콜 분석을 하는데, 이를 자동화 할 수 있을 것 같다. <FORM> 태그, <INPUT> 태그 부분만 추출해내고 그 변수값 종류, 변수 이름을 얻어내는 코드만 작성해도, 반복작업을 줄일 수 있을듯. --["1002"]
          * 동감, 해당 프로토콜을 분석해서 property로 만들어 버리는 작업을 수행해야 할것 같군. 이작업을 한달에 한번 수행시키도록 해야 할까 ;; --["neocoin"]
          * WAR 알아보기. ProjectPrometheus 배포가 편하도록.
          * '''The Goal''' View Book 시 DB에 들어가지 않음.
          * 도서관이 저번주에 뭐 바꾼답시고 삽질중이라고 있다고 공지가 있었거든. 난 내부 DB 작업만 중단 하는것인줄 알았는데, UI부분이 약간 변경된듯 하다. 어이가 없어서.. My Page 눌러보면 공지 해놓았으니 참고--["neocoin"]
          * {{{~cpp DBConnectoinManager}}} 관련 주의 사항 http://javaservice.net/~java/bbs/read.cgi?m=dbms&b=jdbc&c=r_p&n=1019574430&p=2&s=d#1019574430
          * 다른 Conntion Pooling 용으로 http://www.bitmechanic.com/ 를 생각할수 있으며, 한글 자료는 http://javaservice.net/~java/bbs/read.cgi?m=dbms&b=jdbc&c=r_p&n=1034293525&p=1&s=d#1034293525 에 소개되어 있다.
          * 모든 connection Pooling 관리자에게 이런 문제사항은 노출되어 있으며, bitmechanic 도 예외는 아니다. ;;
         우리는 여기에서 frequent release(give workable system to the customer every week)가 얼마나 중요한가 새삼 확인할 수 있다. --JuNe
  • ProjectPrometheus/LibraryCgiAnalysis . . . . 1 match
         (http://www.cyberclip.com/webdebug/index.html, http://sourceforge.net/projects/webdebug)
          * Server: Apache/1.3.22 (Win32) mod_jk
          * Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.1_01; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)
         Windows 2000 아파치 톰켓 조합에 Java JDK 가 1.3.1_01 이라. 약간 신기한 조합같다는 생각이.. --a
          "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
          "Accept":"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"}
          conn.request("POST", "/cgi-bin/mcu200", params, headers)
          print response.status, response.reason
          f = urllib.urlopen("http://165.194.100.2/cgi-bin/mcu200", params)
         http://165.194.100.2/cgi-bin/mcu201?LIBRCODE=ATSL&USERID=abracadabra&SYSDB=R&HISNO=0010&SEQNO=21&MAXDISP=10
         &pKeyWordC=%28+%28-TI-+WITH+%28extreme+programming+%29+.TXT.%29++%29 - 검색 관련 키워드
         ["ProjectPrometheus"]
  • ProjectSemiPhotoshop/계획서 . . . . 1 match
          * 10/24 pm1:00~pm4:00 VC예제 작성 , GDI, BMP, Key Input 예제 작성
          * Sampling 구현
          * 11/26 화 2차 integration ( 히스토그램, Quantization)
          * 11/28 목 3차 integration ( 남은 기본 기능, 명암 변화들 )
          * 11/30 토 4차 integration ( 추가 기능 )
  • ProjectSemiPhotoshop/요구사항 . . . . 1 match
          i. Sampling => 모자이크 이미지(O)
          * Posterizing
          * Thereshold Binary Image (O 흑백)
          * Clipping ( O 흑백 )
          * Iso-intensity Contouring(등명암 윤곽화) ( O 흑백 )
          * Range-highlighting(범위-강조) (O 흑백)
          * Solarize using a Threshold (O 흑백)
          i. Blurring (O)
          * Sharpening (O)
          * Embossing (O)
          * Median Filtering (O)
          * Contrast Stretching (O)
  • ProjectVirush/Prototype . . . . 1 match
         //Project -> Setting -> LINK 메뉴 -> Object/library modules: 의 끝부분에 ws2_32.lib 를 추가한다.
         #include <stdio.h>
         #include <winsock2.h>
         #define PORT 9999 // 서버의 9999번 포트를 연다
         #define BACKLOG 5
         #define SERVER_IP "127.0.0.1"
         main(){
          SOCKADDR_IN server_addr; // 네트워크의 정보를 담을 structure 생성.
          int queslen;
          server_sock = socket(AF_INET, SOCK_STREAM, 0);
          memset((SOCKADDR_IN *)&server_addr, 0, sizeof(SOCKADDR_IN));
          // struct sockaddr_in -> SOCKADDR_IN
          server_addr.sin_family = AF_INET;
          server_addr.sin_addr.s_addr
          = inet_addr(SERVER_IP); // 로컬 주소로 설정한다.
          server_addr.sin_port = htons(PORT);
          fprintf(stderr, "서버에 connect 할 수 없습니다."), exit(1);
          for( int i = 0 ; i < 3 ; i++ ){
          printf( "I have to answer the next question. %s\n", question);
          fprintf(stderr, "send error");
  • ProjectVirush/ZoneData . . . . 1 match
         0 인천 Inchon 2475139 2475139 0
  • ProjectZephyrus/Afterwords . . . . 1 match
          * deadline 을 잘 맞췄다. - 6월 10일까지 완료하기로 한 약속을 지켰다.
          * Pair Programming 에 신경을 썼다. - Pair Programming 을 위한 진행 전략이 있었다.
          * WORA 를 경험해볼 수 있었다 - 윈도우즈에서 개발/테스트 한 서버 프로그램을 별다른 수정없이 linux 서버인 ZeroPageServer 에서 돌릴 수 있었다.
          * server 팀과 Client 팀의 전체 meeting 이 거의 전무했다.
          * deadline 을 잘 맞췄다.
          - 서버팀 진행자인 ["neocoin"] 의 성실성
          - 초기 Up Front Design 에 신경을 썼다. Design Pattern 의 도입으로 OCP (OpenClosedPrinciple) 가 잘 지켜졌다.
          * PairProgramming 에 신경을 썼다.
          - PairProgramming 전에 진행 전략을 세웠다. (5분 PP 라던지, PP 순서시 간단한 Modeling 뒤, Sequence Diagram 등을 그리고 난 뒤 진행을 한다던지, 후배들에게 프로그래밍이 완성되었을 경우에 어떠어떠하게 돌아갈 것이다 라고 미리 그 결과를 생각해보게끔 유도)
          * server 팀과 Client 팀의 전체 meeting 이 거의 전무했다.
          - 개인들 별로 IDE 의 선호가 달랐다. (["Eclipse"], ["IntelliJ"], ["JCreator"] )
          - 처음부터 고려하여 각 IDE별 Setting 화일을 업데이트 시켜주기. Batch File 등으로 자동화하기. IDE 의 통일 고려.
          - 프로젝트의 목적이 공부 라는 인식의 부족. 공부한 부분에 대해서 (Swing, Java Network 등)에 대한 문서화가 없었다. SPEC 과 Output 에 치중한 점이 있다.
  • ProjectZephyrus/Client . . . . 1 match
         [http://zeropage.org/browsecvs/index.php?&dir=ProjectZephyrusClient%2F Zephyrus Client CVS] 참조.
          + ---- MainSource - 메인 프로그램 소스 & JCreator 프로젝트 화일이 있는 디렉토리
         || Story Point || 내용 ||
          노동의 양으로 생각해야 하는건 Engineering Task 가 아닌가요? 암튼 이번의 경우는 필수 기능 기준으로 잡아보긴 했습니다. (엄격하게 나눈건 아니긴 하지만요.~) --석천
          ''Engineering Task나 User Story 모두 노동의 양으로 estimation을 해서, 포인트를 준다. 이렇게 "비용"이 적힌 카드들을 놓고, 어느 것을 하고, 미루고, 먼저하는 지 등의 순위 결정은 "중요도 중심", "위험도 중심"이 있는데, 작년 이후 익스트리모들(KRW)은 복잡하게 이런 걸 따지지 말고 그냥 비지니스 가치로 순서를 정하라고 한다. --JuNe''
         Task Point - 영서 & 석천이 Main Frame 연습용 코드 작성했을때 기준을 1 Task Point 로 잡음. (대강 120 라인정도/1시간 정도의 난이도 & 속도)
         || '''내용''' || '''Task Point''' || '''완료여부(○)''' ||
         || buddy list class refactoring (tree model move method) || . || ○ (20분) 6/5 ||
         || 친구 등록 입력창 만들기 || 0.5 || ○(1분 -_-; {{{~cpp InputDialog}}}로 해결) (6/7) ||
         || ZephyrusClient Refactoring || 0.5 || . ||
         || 내용 || Task Point || . ||
         || 내용 || Task Point || . ||
  • ProjectZephyrus/PacketForm . . . . 1 match
         바뀐 내용은 [http://zeropage.org/browsecvs/index.php?&cvsrep=ZeroPage&dir=ProjectZephyrusServer%2Fdocument%2F&file=PacketForm.txt CVS-PacketForm] 에서 확인가능
         Login 관련
          # login # id # password
          # login # 0 -Success!
          # onlineBuddyList # id # id # id...
          # offlineBuddyList # id # id # id...
          Server->online Buddys of Sender
          # online # id
          # message # RceiverID # String(말)
          # message # SenderID # String(말)
         Insert Buddy 친구 추가 관련
          # insertBuddy # BuddyID
          # insertBuddy # 0 - Success
  • ProjectZephyrus/간단CVS사용설명 . . . . 1 match
         = CVS 사용 in linux =
         = WinCVS in Windows =
          설치 [http://www.wincvs.org WinCVS]를 [http://sourceforge.net/project/showfiles.php?group_id=10072&release_id=83299 다운로드] 해서 설치
          === WinCVS Gui 환경 ===
          메뉴->Admin->Preference
          메뉴->Admin->login , 암호입력
          === Command line에서 ===
         cvs98 login
         = Admin 세팅 in ZeroPage Server(2002.5) =
          설치 과정은 생략 (linux 배포본에 들어 있다.)
         cvs -d /home/CVS init
         cvs:x:536:neocoin,reset
          '''2. ZeroPage 서버는 현재 Redhat 7.0이므로 xinetd를 이용하므로 세팅'''
         vi /etc/xinetd.d/cvspserver
         # description: The cvspsever serves CVS Passowrd Server sessions; it uses \
         # unencrypted username/password pairs for authentication.
          server = /usr/bin/cvs
         /etc/rc.d/init.d/xinetd restart
         cvs_man:*:548:536:Pubilc CVS Account for Project Dummy:/home/CVS/:/bin/false
  • PyGame . . . . 1 match
         사용하기 정말 쉽다. [Python] Interpreter 에서 한줄 한줄 입력하면서 공부할 수도 있다.
         ["데기"]는 PyGame 을 이용해서 3D Viewing System 을 만든바 있다.
          def __init__(self, aSize):
          pygame.Surface.__init__(self, aSize)
  • PyIde . . . . 1 match
          * Xper:ExtremeProgramming 을 지원해줄 도구들 만들어나가보기.
          * Prototyping & 외부 공개소스 Review & Copy & Paste 하여 가능한한 빠른 시간내에 원하는 기능 구현법이나 라이브러리들을 연습하여 익힌뒤, Refactoring For Understanding 을 하고, 일부 부분에 대해 TDD 로 재작성.
          * 기타 - CyberFomulaSin의 아스라다와 오우거, Sarah Brightman 의 Harem 앨범, NoSmok:시간관리인생관리
          * [Eclipse] - [wxPython] 과 PDE 중 어느쪽이 더 효율적일까.. CVS 관련 기능들등 프로젝트 관리면에서는 Eclipse 의 Plugin 으로 개발하는 것이 훨씬 이득이긴 한데.. Eclipse Plugin 도 [Jython] 으로 프로그래밍이 가능할까?
          * [PyIde/Scintilla]
          * BoaConstructor - Scintilla 가 사용된 예를 볼 수 있다.
          * BicycleRepairMan - idlefork, gvim 과의 integration 관계 관련 코드 분석.
          * Eclipse 이나 IntelliJ 에서 제공해주는 여러가지 View 들. 그리고 장단점들.
          * http://st-www.cs.uiuc.edu/users/brant/Refactory/RefactoringBrowser.html - Smalltalk refactoring browser
  • PyIde/Exploration . . . . 1 match
         Vim python box 써보다. VIM 의 해당 기능에 대한 빠른 Integration 은 놀랍기 그지없다. (BRM 이건, python 관련 플러그인이건)
         http://www.scintilla.org/ScintillaDoc.html
         BoaConstructor 로 UI 작업하고, 위험하겠지만 어차피 Spike 라 생각하고 Test 없이 지속적으로 리팩토링을 해 나가면서 prototype 을 만들어나갔다. StepwiseRefinement로 진행하니까 코드가 짧은 시간에 읽기 쉽고 빨리 진행되었다.
         약간만 Refactoring 해서 쓰면 될듯. Runner abstract class 추출하고, TestResult 상속받은 클래스 만들고,. Test Loading 은 TestLoader 그대로 쓰면 될것 같다.
         Eric 의 Qt Unittest 모듈이랑, PyUnit Tkinter 코드를 보니, 거의 바로 답이 나와버린 것 같긴 하다.
  • PythonXmlRpc . . . . 1 match
          * http://python.kwangwoon.ac.kr:8080/python/Internet/xmlrpc.html
          * http://kldp.org/HOWTO/html/XML-RPC-HOWTO/index.html
          print "Dispatching: " , method, params
         if __name__=='__main__':
  • QuestionsAboutMultiProcessAndThread . . . . 1 match
          1. Single CPU System에서 프로세서 A 가 Run 중일 때, I/O 작업을 해야 돼서 다른 프로세서 B로 스위칭을 하는 상황이다.
          * 만약 그것이 아니라면, I/O 작업을 CPU가 담당하지 않는 것인가? CPU 내부 ALU와 I/O 작업 회로가 따로 있는 Independent 상황이기 때문에 그런 것인가?
          2. Single CPU & Single-processor & Multi-thread 환경이다.
          * 그렇다면 개념적으로 Single CPU에서 Processor Switching과 같은 것인가?
          * A) processor라고 쓰신 것이 아마도 process를 의미하는 것 같군요? scheduling 기법이나, time slice 정책, preemption 여부 등은 아키텍처와 운영체제 커널 구현 등 시스템에 따라 서로 다르게 최적화되어 설계합니다. thread 등의 개념도 운영체제와 개발 언어 런타임 등 플랫폼에 따라 다를 수 있습니다. 일반적으로 process의 context switching은 PCB 등 복잡한 context의 전환을 다루므로 단순한 thread 스케줄링보다 좀더 복잡할 수는 있으나 반드시 그런 것은 아닙니다. - [변형진]
          * Single Processor & Single Thread
          * Single Processor & Multi Thread
          * Multi Processor & Single Thread
          * Single CPU 환경이라면
          * 어느 바쁜 음식점(machine)입니다. 두 명의 요리사(processor)가 있는데, 주문이 밀려서 5개의 요리(process)를 동시에 하고 있습니다. 그 중 어떤 한 요리는 소스를 끓이면서(thread) 동시에 양념도 다지고(thread), 재료들을 오븐에 굽는데(thread) 요리를 빠르게 완성하기 위해 이 모든 것을 동시에 합니다. 한 명의 요리사는 특정시점에 단 한 가지 행위(instruction)만 할 수 있으므로, 양념을 다지다가 (context switching) 소스가 잘 끓도록 저어주기도 하고 (context switching) 다시 양념을 다지다가 (context switching) 같이 하던 다른 요리를 확인하다가, 오븐에 타이머가 울리면(interrupt) 구워진 재료를 꺼내어 요리합니다. 물론 두 명의 요리사는 같은 시점에 각자가 물리적으로 서로 다른 행위를 할 수 있으며, 하나의 요리를 두 요리사가 나눠서(parallel program) 동시에 할 수도 있습니다. - [변형진]
  • RAID . . . . 1 match
         #redirect RedundantArrayOfInexpensiveDisks
  • RTTI . . . . 1 match
         #Redirect RunTimeTypeInformation
  • RandomWalk2 . . . . 1 match
         이 페이지에 있는 활동들은 프로그래밍과 디자인에 대해 생각해 볼 수 있는 교육 프로그램이다. 모든 활동을 끝내기까지 사람에 따라 하루에서 삼사일이 걸릴 수도 있다. 하지만 여기서 얻는 이득은 앞으로 몇 년도 넘게 지속될 것이다. 문제를 풀 때는 혼자서 하거나, 그게 어렵다면 둘이서 PairProgramming을 해도 좋다.
          * ObjectOrientedProgramming에서 이 문제를 처음 소개했다.
         ||인수 || . ||C++ ||["RandomWalk2/Insu"] ||
         다른 친구와 PairProgramming을 해서 이 문제를 다시 풀어보라. 그 친구는 내가 전혀 생각하지 못했던 것을 제안하지는 않는가? 그 친구로부터 무엇을 배울 수 있는가? 둘의 시너지 효과로 둘 중 아무도 몰랐던 어떤 것을 함께 고안해 내지는 않았는가?
         see also DoItAgainToLearn
  • RandomWalk2/상규 . . . . 1 match
         #include <iostream>
         #include <cstring>
         using namespace std;
         #define MAX_JOURNEY 1024 // 최대 여정 수
         int walk(int m, int n, int starti, int startj, char journey[MAX_JOURNEY], int **board);
         void main()
          int m, n;
          int starti, startj;
          cout << "Input :\n";
          cin >> m >> n;
          cin >> starti >> startj;
          int offset=0;
          cin.getline(buffer,MAX_JOURNEY);
          int count;
          int **board=new int*[m];
          for(int i=0;i<m;i++)
          board[i]=new int[n];
          for(int j=0;j<n;j++)
          for(int j=0;j<n;j++)
         int walk(int m, int n, int starti, int startj, char journey[MAX_JOURNEY], int **board)
  • RandomWalk2/재동 . . . . 1 match
          def testStartPoint(self):
          self.assertEquals((0,0),self.reader.getStartPoint())
          self.board.initializeBoard()
          self.board.initializeBoard()
          for i in range(3):
          self.board.initializeBoard()
          file = open(os.path.join(TXT))
          self.data = file.readlines()
          rowLength = int(self.data[0].split()[0])
          colLength = int(self.data[0].split()[1])
          def getStartPoint(self):
          row = int(self.data[1].split()[0])
          col = int(self.data[1].split()[1])
          path.append(int(self.data[2][i]))
          def __init__(self):
          def initializeBoard(self):
          self.board = [[0 for i in range(self.col)] for j in range(self.row)]
          def printBoard(self):
          for row in range(self.row):
          for col in range(self.col):
  • Refactoring/BuildingTestCode . . . . 1 match
         == The Value of Self-testing Code ==
         나로하여금 self-testing code로의 길을 시작하게 한 계기는 OOPSLA '92의 한 이야기부터였다. 그때 누군가 (아마도 Dave Thomas)"클래스는 자기 자신의 테스트코드를 가지고 있어야 한다" 라는 말을 했다. 이 말은 테스트를 구성하기 위한 좋은 방법으로 여겨졌다. 나는 모든 클래스에 클래스 스스로를 테스트하는 메소드들 (''test''라 한다.)들을 가지도록 만들었다.
         그때 나는 increment development단계에 있었고, 나는 매번 increment 을 완료할때 클래스들에 test method들을 추가했다. 그때 했던 프로젝트는 꽤 작았었고, 우리는 우리의 increment 주기는 한주 단위정도였다. 테스트의 실행은 는 꽤 수월하게 되었다. 하지만 테스트들은 실행하기 쉬웠지만, 테스트를 하는 것은 여전히 지겨운 일이였다. 이것은 내가 체크해야 하는 모든 테스트들이 console 에 결과를 출력하도록 만들어졌기 때문이다. 나는 꽤 게으른 사람이고, 나는 일을 피하기 위해 꽤 열심히 일을 준비했다. 나는 이 클래스들이 프린팅 해주는 것을 체크하는 대신, 컴퓨터가 테스트를 수행하도록 했다.내가 할일은 테스트 코드에 내가 기대하는 결과를 작성하고, 그 비교를 수행하는 것이다. 자, 나는 모든 클래스들의 test method를 수행할 수 있었고, 모든 일이 잘 되면 단지 'OK' 가 출력되는 것을 확인하면 되었다. 이 클래스는 지금 스스로 자기 자신을 테스트를 했다.
         이 사실을 알아갈수록 나는 테스트에 좀 더 적극적이 되었다. increment가 끝가기를 기다리는 대신에, 나는 조그마한 기능을 추가할 때 마다 테스트를 했다. 매번 나는 새 기능들을 추가 했고, 그들에 대한 테스트들을 수행했다. 이 당시 나는 디버깅에 수분이상을 소비하지 않았다.
         그리고 이것이 실제로 프로그래밍 속도를 높인다는 것을 경험해보지 않으면 self-testing 코드는 사람들이 이해해주지 못한다. 그리고 테스트가 수동이라면 이것은 지루할 것이다. 하지만 테스트가 자동화된다면 테스트 코드를 쓰는 것은 꽤 재미있는 일이 될 것이다.
         테스팅 코드는 ExtremeProgramming 의 중요한 부분이다. [Beck, XP]. 이 이름은 빠르고 게으른 해커같은 프로그래머들에겐 마술주문과 같을 것이다. 하지만, extreme programmer들은 테스트에 대해 매우 헌신적이다. 그들은 가능한 한 소프트웨어가 빠르게 발전하기 원하고, 그들은 테스트들이 당신을 아마 갈 수 있는 한 빠르게 갈 수 있도록 도와줄 것을 안다.
         이정도에서 이야기는 충분하다 본다. 비록 내가 self-testing code를 작성하는 것이 모두에게 이익이 된다고 생각하더라도, 그것은 이 책의 핵심이 아니다. 이 책은 Refactoring에 관한 것이다. Refactoring은 test를 요구한다. 만일 Refactoring 하기 원한다면, test code를 작성해야 한다.
         ["Refactoring"]
  • Refactoring/OrganizingData . . . . 1 match
         ["Refactoring"]
         = Chapter 8 Organizing Data p169 =
          * You are accessing a field directly, but the coupling to the field is becoming awkward. [[BR]] ''Create getting and setting methods for the field and use only those to access the field.''
          private int _low, _high;
          boolean includes (int arg){
          private int _low, _high;
          boolean includes (int arg){
          int getLow() {return _low;}
          int getHigh() {return _high;}
          * You have a data item that needs additional data or behavior. [[BR]] ''Turn the data item into an object.''
          * You have a class with many equal instances that you want to replace with a single object. [[BR]] ''Turn the object into a reference object.''
          * You have a reference object that is small, immutable, and awkward to manage. [[BR]] ''Turn it into a balue object.''
          * You have an array in which certain elements mean different things. [[BR]]''Replace the array with an object that has a field for each element.''
          String[] row = new String[3];
          row.setWins("15");
          * You have domain data available only in a GUI control, and domain methods need access. [[BR]] ''Copy the data to a domain object. Set up an observer to synchronize the two pieces of data.''
          * You have two classes that need to use each other's features, but there is only a one-way link.[[BR]]''Add back pointers, and change modifiers to update both sets.''
          * You have a two-way associational but one class no longer needs features from the other. [[BR]]''Drop the unneeded end of the association.''
          * You have a literal number with a paricular meaning. [[BR]] ''Crate a constant, name it after the meaning, and replace the number with it.''
          static final double GRAVITATIONAL_CONSTANT = 9,81;
  • Refactoring/RefactoringReuse,andReality . . . . 1 match
         = Chapter 13 Refactoring Reuse, and Reality =
         == why Are Developers Reluctant to Refactor Their Programs? ==
         === Understanding Hot and Where to Refactor ===
         === Refactoring to Achive Near-term Benefits ===
         === Reducing the Overhead of Refactoring ===
         === Refactoring Safely ===
         == Resources and References for Refactoring ==
         == Implications Regarding Software Reuse and Technology Transfer ==
         == A Final Note ==
         ["Refactoring"]
  • Refactoring/RefactoringTools . . . . 1 match
         = Chapter 14 Refactoring Tools =
         == Refactoring with a Tool ==
         == Technical Criteria for a Refactoring Tool ==
         == Practical Criteria for a Refactoring Tool ==
         === Integrated with Tools ===
         ["Refactoring"]
  • RoboCode/ing . . . . 1 match
         http://zeropage.org/pub/upload/ing.IngTeam_1.0.jar
  • RubyLanguage/Class . . . . 1 match
          * Mix-in
         == Mix-in ==
          * '''Include''' : 클래스가 모듈을 상속받는 것.
  • RubyLanguage/InputOutput . . . . 1 match
         == InputOutput ==
          * STDOUT << , STDIN >>
          * each_line : 세퍼레이터를 넘겨 한 단위(세퍼레이터로 구분)씩 읽어옴
          * readlines : 배열로 읽어옴
         puts.client.readlines
  • RuminationOnC++ . . . . 1 match
         = Intro =
          '''Technique in book'''
          - 제본하자 -_-; - intaek
  • SICP . . . . 1 match
         #redirect StructureAndInterpretationOfComputerPrograms
  • Score/1002 . . . . 1 match
         def toInt(aList): return [{'O':1,'X':0}[v] for v in aList]
          for idx in range(1,len(aList)):
         input 에 대해서 여러 방법으로 변형을 시도. 그 중 좋은 아이디어가 떠오름.
         def ox(aList): return sum((len(e)*(len(e)+1))/2 for e in aList.split("X") if e!='')
         for each in ['OOXXOXXOOO','OOXXOOXXOO', 'OXOXOXOXOXOXOX', 'OOOOOOOOOO','OOOOXOOOOXOOOOX']: print ox(each)
  • Self-describingSequence/황재선 . . . . 1 match
         public class DescribingSequence {
          private final int MAX = 673366;
          public int readNumber() {
          return new Scanner(System.in).nextInt();
          public int getSequence(int n) {
          int[] describing = new int[MAX + 1];
          describing[3] = 2;
          int input = 4;
          int output = 3;
          int numRepeat;
          numRepeat = describing[output];
          for(int i = 0; i < numRepeat; i++) {
          if (input == n) {
          if (input > MAX) {
          input++;
          describing[input++] = output;
          public void printValue(int value) {
          System.out.println(value);
          public static void main(String[] args) {
          DescribingSequence ds = new DescribingSequence();
  • SeminarHowToProgramItAfterwords . . . . 1 match
         SeminarHowToProgramIt에 대한 감상, 후기, 각종 질답, 논의, ThreeFs.
          * [창섭]:PairProgramming 자체가 인상적이었습니다. 음악을 아마추어로 하는 저로써는 음악외에도 이렇게 멋지게 콤비를 결성할 수 있다는 것에 놀라울 따름입니다. ^^;; 그리고 변수명을 고치는 것 자체가 Refactoring 에 들어가고 매우 중요하다는 사실도 감명이었습니다. ^^;
          * ["neocoin"] : UnitTest에서 추구한 프로그램의 설계에서 Divide해 나가는 과정은 여태 거의 디자인 타임에서 거의 수행을 했습니다. 그래서 여태 Test를 위한 코드들과 디버그용 코드들을 프로그램을 작성할때마다 그런 디자인에도 많은 시간을 소요했는데, 아예 프로그램의 출발을 Test에서 시작한다는 발상의 전환이 인상 깊었습니다. --상민
          * ["1002"] : 어제 Test Code : Product Code 간 중복 (return 0 !) 을 OAOO로 풀어서 Refactoring 을 해야 할 상황으로 규정짓는다는 말이 뒤통수를 한대 때리는 기분이였습니다;;
          * '테스트코드의 보폭을 조절하라. 상황에 따라 성큼성큼 보폭을 늘릴수도 있지만, 상황에 따라서는 보폭을 좁혀야 한다. 처음 TDD를 하는 사람은 보폭을 좁혀서 걸어가기가 오히려 더 힘들다' wiki:Wiki:DoTheSimplestThingThatCouldPossiblyWork. 이것이 훈련이 아직 덜된, TDD를 하는 사람에게는 얼마나 힘든지는 이번 RDP 짜면서 느꼈었는데. 열심히 훈련하겠습니다.
          * ["Refactoring"] 책에서는 ''Refactor As You Do Code Review'' 에 Code Review 를 위한 Refactoring을 이야기 하는데, Refactoring 을 위해서는 기본적으로 Test Code 가 필요하다고 할때 여기에 Test Code를 붙일테니까 상통하는 면이 있긴 하겠군요.
          * 흥미로운 것은 시끄러운 프로그래밍이였다는 것이였습니다. 혼자서 하는 프로그래밍(PairProgramming을 알고나니 새로운 개념이 생기는군요. 원래 Programming이라는 것은 혼자하는 거였는데, 이제 프로그래밍하면 pair인지 single인지 구분을 해주어야겠군요)을 하는 경우에는 팀원들이 소란스럽게 떠들면 ''아 지금 설계하고 있구나''하고 생각하고, 조용해지면 ''아 지금 코딩하고 있구나..''하는 생각이 들었는데, PP는 끝까지 시끄럽게 하는거라는 느낌이 들더군요. 그렇게 대화가 많아지는 것은 코딩에 대한 이해도의 증가와 서로간의 협력 등 많은 상승효과를 가져올 수 있다는 생각을 했습니다.
          * 그리고 관찰하던 중 PairProgramming에서 Leading에 관한 사항을 언급하고 싶습입니다. 사용하는 언어와 도구에 대한 이해는 확실하다는 전제하에서는 서로가 Pair에 대한 배려가 있으면 좀더 효율을 낼 수 있을꺼라 생각합니다. 배려라는 것은 자신의 상대가 좀 적극적이지 못하다면 더 적극적인 활동을 이끌어 내려는 노력을 기울어야 할 것 같습니다. 실습을 하던 두팀에서 제 느낌에 지도형식으로 이끄는 팀과 PP를 하고 있다는 생각이 드는 팀이 있었는데. 지도형식으로 이끄는 팀은 한 명이 너무 주도적으로 이끌다 보니 다른 pair들은 주의가 집중되지 못하는 모습을 보인 반면, PP를 수행하고 있는 듯한 팀은 두 명 모두 집중도가 매우 훌륭한 것 같아서 이런 것이 정말 장점이 아닌가 하는 생각이 들었습니다. 결국 PP라는 것도 혼자가 아닌 둘이다 보니 프로그래밍 실력 못지 않게 개인의 ''사회성''이 얼마나 뛰어냐는 점도 중요한 점으로 작용한다는 생각을 했습니다. (제가 서로 프로그래밍중에 촬영을 한 것은 PP를 전혀 모르는 사람들에게 이런 형식으로 하는 것이 PP라는 것을 보여주고 싶어서였습니다. 촬영이 너무 오래 비추었는지 .. 죄송합니다.)
  • SeparatingUserInterfaceCode . . . . 1 match
         전에 TDD 기사 썼을때 읽으면서 굉장히 감명깊었던 구절. 디자인에서 로직/UI 분리가 어떻게 이루어져야 하는가를 아주 간단하면서도 명료하게 말해준다. 개인적으론 RefactoringBook 을 읽었을때보다 이 글을 본 것이 더 충격적이였던것으로 기억된다. (특히, RefactoringBook 을 읽었을때보다 상대적으로 디자인에 대한 지식이 더 있었을때임에도 충격이 더 컸음에.) :
         When separating the presentation from the domain, make sure that no part of the domain code makes any reference to the presentation code. So if you write an application with a WIMP (windows, icons, mouse, and pointer) GUI, you should be able to write a command line interface that does everything that you can do through the WIMP interface -- without copying any code from the WIMP into the command line.
         도메인모델로부터 프레젠테이션 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 presentattion 코드와 관련이 없도록 해야 한다. 그리하여 만일 WIMP GUI 어플리케이션을 작성했을때 당신은 WIMP 인터페이스를 통해 할 수 있는 모든 것들을 command line interface 로 작성할 수 있어야 한다. WIMP 코드로부터 어떠한 코드도 복사하지 않고.
         이는 UI 부분에만 적용되지 않는다. 일종의 InformationHiding 의 개념으로 확장할 수 있다. 예를 들면 다음과 같이 응용할 수 있지 않을까.
         도메인모델로부터 퍼시스턴스 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 퍼시스턴트 레이어 코드와 관련이 없도록 해야 한다. 만일 MySQL Repository을 작성했을때 당신은 MySQL 인터페이스를 통해 할 수 있는 모든 것들을 Flat File Repository interface 로 작성할 수 있어야 한다. MySQL 코드로부터 어떠한 코드도 복사하지 않고.
  • Server&Client/영동 . . . . 1 match
          public static void main(String[] args) throws IOException
          System.out.println(server);
          System.out.println("접속을 기다립니다.");
          System.out.println(accepted);
          System.out.println("종료합니다.\n");
          public static void main(String[] args) throws IOException
          System.out.println(connect);
         ["JavaStudyInVacation/진행상황"]
  • SgmlEntities . . . . 1 match
         To support international characters even on generic (US) keyboards, SgmlEntities know from HTML are a good way. These can also be used to escape the WikiMarkup characters.
         See also: MoinMoinTodo
  • SharedSourceProgram . . . . 1 match
         MS는 3년 전부터 `소스공유 이니셔티브'(Shared Source Initiative)라는 프로그램을 통해 협력업체들과 정부에 윈도 소스코드를 공개해왔다. 특히 최근 몇 년간 각 국 정부가 오픈 소스 진영으로 전환하는 것을 막기 위해, 정부와 특정 회사가 소스코드를 볼 수 있는 프로그램을 확대해왔다.
  • SmallTalk/강좌FromHitel/강의3 . . . . 1 match
          1.4.1. Dolphin Smalltalk 등록하기
         1.4.1. Dolphin Smalltalk 등록하기
         이제까지 우리는 Dolphin Smalltalk를 사용하면서 저장 기능을 사용할 수 없
         Arts사(社)는 공개용으로 사용할 수 있는 Dolphin Smalltalk 98 / 1.1판을
         도록 하고 있습니다. 이는 Dolphin Smalltalk를 사용하는 사람들이 어떤 계
         Dolphin Smalltalk를 시작합니다. 그런 다음 File > Exit Dolphin 메뉴를 실
         행시켜서 Dolphin Smalltalk를 종료합니다. 이 때 현재 Smalltalk의 상황을
         * Product: 사용하고 있는 Dolphin Smalltalk의 종류. 우리는 1.1판을 고르
          Dolphin Smalltalk에 대해 처음어로 접한 매체를 고릅니다.
         * Intended use of this product?
          Dolphin Smalltalk를 어떤 목적에 사용할 것인지를 묻습니다.
          Dolphin Smalltalk를 몇 번만에 전송받았는지를 묻습니다.
         등록 절차를 마치면 이제부터 여러분의 컴퓨터에 설치되어 있는 Dolphin
         이렇게 해서 발급받은 password를 (1)과 마찬가지로 입력하게 되면 Dolphin
         을 것입니다. 이제 저장 기능을 사용할 수 있는 여러분의 Dolphin Smalltalk
          font: (Font name: 'Arial' pointSize: 36) bold;
          text: Time now printString at: 10@10;
         > Exit Dolphin 메뉴를 사용해서 Dolphin Smalltalk를 끝내봅시다. 이 때
         다. Windows의 바탕 화면이 표시되어있다면 글쇠를 눌러서 바탕 화면을
          digitalClockProcess terminate.
  • SoJu . . . . 1 match
         ||[조현태]||undinekr골뱅이daum.net||O|| ||
         [DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
          [http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다.
  • SoftwareEngineeringClass/Exam2006_1 . . . . 1 match
         2) Tayloring 과 Deploy를 설명하라.
         3) S/W Test 와 Independent Verification & Validation 비교하라
  • SpikeSolution . . . . 1 match
          (ex) DB를 연결하기 위해 DB를 Install 하기, DB 작동이 어떻게 되는지 query 날려보기. 해당 라이브러리가 어떻게 작동하는지 간단한 예제 프로그래밍 등
         ["ExtremeProgramming"]
  • StringOfCPlusPlus/상협 . . . . 1 match
         == String0.h ==
         //String0.h
         #ifndef _STRING0_H_
         #define _STRING0_H_
         class String
          int n;
          String();
          String(const char *in_st);
          ~String();
          int nval() const {return n;}//문자열 길이를 알려줌.
          int search(char se);//찾고자 하는 문자열의 갯수로 알려줌
          String operator+(const String &s) const;
          friend ostream& operator<<(ostream &os, String &s);
         == String0.cpp ==
         //String0.cpp
         #include <iostream>
         #include <cstring>
         using namespace std;
         #include "String0.h"
         String::String()
  • StringResources . . . . 1 match
         /** StringResorces.java - Information strings, Component's label strings resources load
  • StructuredProgramming . . . . 1 match
         구조적 프로그래밍 기법으로서 OOP에서도 여전히 유용하게 이용할 수 있는 방법으로는 StepwiseRefinement 가 있다. 이는 처음 추상적인 이름으로 서술한뒤, 점차적으로 구체적인 구현부분까지 점진적으로 서술해가면서 구현해나간다. 이는 ProgrammingByIntention 과 그 맥락이 비슷하다고 할 수 있다.
         Notes on Structured Programming
         What led to "Notes on Structured Programming"
  • SummationOfFourPrimes . . . . 1 match
         [http://online-judge.uva.es/p/v101/10168.html 원문보기]
         == Input ==
         [http://www.n2n.pe.kr/util/find_prime.php 소수판정기]로 답을 확인해볼 수 있겠네요. --[Leonardong]
  • SystemInfo . . . . 1 match
         [[SystemInfo]]
  • TddRecursiveDescentParsing . . . . 1 match
         RecursiveDescentParsing 을 TFP 로 시도를 해보려고 하는데.. Parser부분에 대한 test 의 결과를 얻기 위해서는 AST를 얻도록 해야 하고, AST를 조금씩 구축해나가는 방향으로 디자인유도중인데. 이 아이디어 생각하려는데 1시간을 소비했다. 흡;
          ''먼저 "1"을 넣으면 "1"을 리턴하는 프로그램을 만듭니다. 다음 "314"를 넣으면 "314"를 리턴하게 합니다. 다음엔, "1 + 0"을 넣으면 "1"을 리턴하게 합니다. 다음, "1 + 314"를 넣으면 "315"를 리턴합니다. 다음, "1 + 2 + 314"를 하면 "317"을 리턴합니다. 다음, "1 - 0"을 하면 "1"을 리턴합니다. 다음, "1 - 1"을 하면 "0"을 리턴합니다. 다음, "314 - 1 + 2"를 하면 "315"를 리턴합니다. 다음, "- 1"을 넣으면 "-1"을 리턴합니다. 다음, "( 1 )"을 넣으면 "1"을 리턴합니다. ...... AST는 아직 생각하지 말고 당장 현재의 테스트를 패스하게 만드는데 필요한 것만 만들어 나가고 OAOO를 지키면서(테스트코드와 시스템코드 사이, 그리고 시스템 코드 간) 리팩토링을 지속적으로 합니다 -- 그렇다고 파싱 이론을 전혀 이용하지 말라는 말은 아니고 YAGNI를 명심하라는 것입니다. 그러면 어느 누가 봐도 훌륭한 디자인의 파서를 만들 수 있습니다. DoTheSimplestThingThatCouldPossiblyWork. --김창준''
         대강 다음과 같은 식으로 접근했고요. 테스트코드 2-3줄쓰고 파서 메인코드 작성하고 하는 식으로 접근했습니다. (["Refactoring"] 을 하다보면 FactoryMethodPattern 과 CompositePattern 이 적용될 수 있을 것 같은데, 아직은 일단.)
          parser.setStringStream("a = b+c")
          self.assertEquals(token.tokenString, 'a')
          self.assertEquals(token.tokenString, '=')
          self.assertEquals(token.tokenString,'b')
          self.assertEquals(token.tokenString, '+')
  • TestDrivenDevelopment . . . . 1 match
          사람마다 다를것 같긴 하지만, 나의 경우는 테스트를 작성하기 전 TODO List 를 작성할때 가장 고민을 하고 시간이 오래걸린 것 같다. 뭘 만들것인지에 대한 이해가 제대로 되지 않은 상태에서는 도대체 '뭘 해야 할지, 어떤 결과를 기대해야 할지'를 모르기 때문. :) 한편, 만일 TODO 리스트 작성시 시간이 너무 지체된다 싶으면 빨리 '어떤 결과를 기대해야 하나(Test 디자인)' 이란 질문을 하고 테스트를 작성해보는 방법을 추천. 저 질문이 앞에서의 '뭘 할까?'라는 질문의 모호함을 보완해주기 때문. 무엇을 해야 할지 감이 안올때는 가장 간단한 Input-Output 을 서술해봄으로서 조금씩 구체화시켜나갈 수 있음. '예제에 의한 구체화'란 방법은 참 유용함. --[1002]
         테스트를 작성할때엔 '이미 완성되어있는 잘 된 API' 를 상상하며 작성한다. 잘 만들어진 API는 같은 일을 하더라도 직접 호출해줘야 하는 함수의 갯수가 적고 이해하기 편하며 '무엇'을 해주는지 그 메소드가 말해준다. 적게 코드를 써도 많은 일을 해주는것이다. 그리고, 테스트로서 컴퓨터의 컴파일러에게 코드작성을 위해 해야 할 일들을 묻고, 인터페이스를 만들고. 그리고 구현하고, 다시 구현된 코드를 Refactoring 한다.
         int gNumTests = 0;
         int gNumFailures = 0;
         #define Assert(cond) AssertImpl(cond, #cond, __LINE__, __FILE__)
         void AssertImpl( bool condition, const char* condStr, int lineNum, const char* fileName)
          printf("file %s', line %d, assert '%s' failed\n", fileName, (int)lineNum, condStr);
         void printTestResult() {
          printf("%d tests run, %d tests failed\n", (int)gNumTests,(int)gNumFailures);
         int main(int argc, char* argv[])
          printTestResult();
  • TestDrivenDevelopmentBetweenTeams . . . . 1 match
         관련 문서 : http://groups.yahoo.com/group/testdrivendevelopment/files 에 Inter-team TDD.pdf
         일단 각 팀들끼리 TDD 를 하면서 팀들간의 대화를 통해서 일종의 공통 interface 를 빼낼 수 있다. 일단은 일종의 MockObject 로 가짜값을 채워서 테스트를 통과시킨뒤, 실제 Object 가 구현되면, 천천히 하나씩 실제 Object 의 interface 를 끼워가면서 테스트를 통과하는지를 확인한다. 그리고 최종적으로 실제 Object 로 MockObject 를 대체시킨다.
         Java 의 경우 inteface 키워드나 abstact class 를 이용하여 interface 를 정의할 수 있다. 팀의 구성원끼리 Pair를 교체한 뒤 interface를 정의하면 더욱 효과적이겠다.
  • TestFirstProgramming . . . . 1 match
         ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
         요새는 ["TestDrivenDevelopment"] 라고 한다. 단순히 Test 를 먼저 작성하는게 아닌, Test 주도 개발인 것이다. TestDrivenDevelopment 는 제 2의 Refactoring 과도 같다고 생각. --["1002"]
         ex) ["TFP예제/Omok"], ["TFP예제/Queue"], ["TFP예제/WikiPageGather"]
          * wiki:Wiki:CodeUnitTestFirst, wiki:Wiki:TestFirstDesign, wiki:Wiki:TestDrivenProgramming
          * wiki:NoSmok:TestFirstProgramming
          * wiki:Wiki:ExtremeProgrammingUnitTestingApproach
         === Test Code Refactoring ===
         프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
          * wiki:Wiki:RefactoringTestCode
          wiki:Wiki:DoTheSimplestThingThatCouldPossiblyWork
         Test Driven 에 대한 접근 방법에는 End-To-End (BlackBoxTesting) 식의 접근 방법과 WhiteBoxTesting 의 접근방법이 있을 수 있겠다.
         Test Code 를 작성하진 않았지만, 이런 경험은 있었다. PairProgramming 을 하는 중 파트너에게
         이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
         TddRecursiveDescentParsing
         ["ExtremeProgramming"]
  • The Tower of Hanoi . . . . 1 match
         ==== Recurrent Problems - The Tower of Hanoi ====
         T<sub>n</sub> is the minimum number of moves that will transfer n disks from one peg to another under Lucas's rules.
         ===== mathematical expression =====
  • TheBookOpenSources . . . . 1 match
         || http://www.aladdin.co.kr/Cover/897914069X_1.gif [[BR]] ISBN:897914069X ||
         Moa:TheBookOpenSources 에서 자유롭게 볼 수 있는 온라인책 관련 링크가 있다.
  • TheJavaMan/로보코드 . . . . 1 match
         [TheJavaMan]
  • TheLargestSmallestBox/허준수 . . . . 1 match
         #include <iostream>
         #include <cmath>
         using namespace std;
          double min_v = l < w ? l : w;
          cout << max_v << " " << 0.0 << " " << min_v/2 <<endl;
         int main()
          cout.setf(ios::showpoint);
          while(cin >> l >> w)
         [TheLargestSmallestBox]
  • ThePracticeOfProgramming . . . . 1 match
         [TheElementsOfProgrammingStyle] 에 대해 문의사항이 있어 저자중 한명에게 메일을 보냈더니, 이 책을 언급하였다. TEOPS 의 중요한 내용들을 이책의 첫 챕터에 수록하였다는 말과 함께. -_-a
  • ThePragmaticProgrammer . . . . 1 match
          SeeAlso : PPR:ThePragmaticProgrammer
  • TheSkylineProblem . . . . 1 match
         === The Problem ===
  • TheTrip/곽세환 . . . . 1 match
         #include <iostream>
         using namespace std;
         int main()
          int n; // 학생 수
          int student[1000]; // 학생들이 사용한 돈
          int total; // 총합
          int aver; // 평균
          int studentExchanged[1000]; // 공평하게 이동된 후의 학생들이 쓴 돈
          int exchange; // 전체 이동되는 돈
          int temp;
          int i, j;
          while (cin >> n && n != 0)
          double input;
          cin >> input;
          student[i] = (input + 0.005) * 100;
          int temp;
          int temp;
         [TheTrip]
  • TheTrip/허아영 . . . . 1 match
         //TheTrip 10137
         #include <iostream>
         using namespace std;
         #include <math.h>
         double rounding(double num)
         int main()
          int n;
          int i;
          while(cin >> n)
          cin >> cost[i];
  • TheWarOfGenesis2R/ToDo . . . . 1 match
         [TheWarOfGenesis2R]
  • TheWarOfGenesis2R/일지 . . . . 1 match
          * 파일을 읽고 쓸 수 있다. (Text모드도 Binary모드도 OK)
          * 초기에는 Text모드로 스크립트를 만들고, 추후에 Binary모드로 스크립트를 만들 계획
         [TheWarOfGenesis2R]
  • TitleIndex . . . . 1 match
         [[TitleIndex]]
  • TkinterProgramming/Calculator2 . . . . 1 match
         from Tkinter import *
          def __init__(self, master, left1, right1):
          Frame.__init__(self, master, bg='gray40')
          def __init(self, master, font=('arial', 8, 'bold'), fg='white',
          apply(Button.__init__, (self, master), kw)
          def __init__(self):
          exec code in self.myNameSpace, self.myNamespace
          def __init__(self, parent = None):
          Frame.__init__(self, bg='gray40')
          self.master.title('Tkinter Toolkit TT - 42')
          'sin' : self.doThis, 'cos' : self.doThis,
          print '"%s" has not been implemented' % action
          self.display.insert(END, '\n')
          self.display.insert(END, '%s\n' % result, 'ans')
          self.display.insert(END, key)
          ('Del', 'Ins', '', KC1, FUN, 'delete'),
          ('Sin', 'Sin-1', 'E', KC1, FUN, 'sin'),
          self.display.component('text').bind('<Key>', self.doKeypress)
          self.display.component('text').bind('<Return>', self.doEnter)
          for row in keys:
  • ToeicStudy . . . . 1 match
         == The Goal ==
  • TuringMachine . . . . 1 match
         = Turing Machine =
         == Intruduction ==
         참조) Turing Award : 알랜 튜링의 업적을 기리기 위해서 제정한 상으로, 컴퓨터 공학분야의 노벨상이라 칭해짐.
  • UDK/2012년스터디 . . . . 1 match
          * [http://www.udk.com/kr/documentation.html 튜토리얼], [http://www.3dbuzz.com/vbforum/sv_home.php 3D Buzz] [http://cafe.naver.com/cookingani UDK 카페]와 [http://book.naver.com/bookdb/book_detail.nhn?bid=6656697 Mastering Unreal]을 참고하여 진행
         World Machine
         http://udn.epicgameskorea.com/Three/LandscapeCreatingKR.html
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptBaptismByFireKR.html 언리얼 마스터하기: 언리얼스크립트 통과의례]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptClassesKR.html 언리얼 마스터하기: 언리얼스크립트 클래스]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptFunctionsKR.html 언리얼 마스터하기: 언리얼스크립트 함수]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptPreProcessorKR.html 언리얼 마스터하기: 언리얼스크립트 전처리기]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptStatesKR.html 언리얼 마스터하기: 언리얼스크립트 스테이트]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptDelegatesKR.html 언리얼 마스터하기: 언리얼스크립트 델리게이트]
          * UDK 및 nFringe 설치 및 컴파일
          * DefaultCharInfo.ini 파일에서 캐릭터 동작등을 수정하는 방법 알아 봄
          * [http://download.autodesk.com/us/3dsmax/skillmoviesv2011/index.html Essential Skills Movies]
          * [http://docs.autodesk.com/3DSMAX/13/KOR/Autodesk%203ds%20Max%202011%20Tutorials/index.html Autodesk 3ds Max 자습서]
          * [http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=6837309&linkID=9241175 Autodesk 3ds Max Services & Support]
          좀 더 관심있으면 다음 예제도 도움이 될 듯. [http://udn.epicgames.com/Three/DevelopmentKitGemsConcatenateStringsKismetNodeKR.html Concatenate Strings (문자열 연결) 키즈멧 노드 만들기]
          * 도데체 Point Object는 어떻게 만드는겨 - (책 설명에 따르면.. 그림과 같이 발의 뒤쪽을 뷰포트에서 클릭해 Point 오브젝트를 만듭니다.... 뭐 어쩌라고)
         // NotifyHitWall with falling pawn
         event NotifyFallingHitWall(vector HitNormal, actor Wall);
  • Ubiquitous . . . . 1 match
          유비쿼터스 컴퓨팅의 최종 목표는 '''‘고요한 기술’'''의 실현이다.('사라지는 컴퓨팅 계획(Disappearing Computing Initiative)')
  • UglyNumbers . . . . 1 match
         [http://online-judge.uva.es/p/v1/136.html 원문보기]
         The 1500'th ugly number is <number>.
         || Seminar:지원 || Python || 30분 || Seminar:UglyNumbers/지원 || O ||
  • UglyNumbers/JuNe . . . . 1 match
          for lastug,p in zip([ugs[-1]]*len(prim),prim)]
          ts=[ugs[ind]*mul for ind,mul in zip(tris,prim)]
          ugs.append(min(ts))
         if __name__=='__main__':
          print "The 1500'th ugly number is",ugly(1500)[-1]
  • UglyNumbers/김회영 . . . . 1 match
         #include<iostream>
         using namespace std;
         void main()
          int situation;
          cin>>situation;
          int count=1;
          cout<<"The "<<situation<<"번째 심술쟁이수는 "<<number;
  • UglyNumbers/문보창 . . . . 1 match
         #include <iostream>
         #include <cstdlib>
         #include <cmath>
         using namespace std;
         const int MAX = 2000;
         inline int comp(const void *i,const void *j) { return *(int *)i-*(int *)j; };
         int main()
          int num[MAX];
          int count = 0;
          int expo2, expo3, expo5;
          int MAX_INT = pow(2,31) - 1;
          if (pow(2,expo2) * pow(3,expo3) * pow(5,expo5) > MAX_INT
          qsort(num, count, sizeof(int), comp);
          cout << "The 1500'th ugly number is " << num[1499] << ".\n";
  • UglyNumbers/송지원 . . . . 1 match
         #include <iostream>
         using namespace std;
         const int MAX = 1500;
         int uglyNum(int);
         void main(){
          int num;
          cin >> num;
          cout << "The " << num << "th ugly number is " << uglyNum(num) << endl;
         int uglyNum(int num){
          int ugly[MAX];
          int n2, n3, n5; // ugly number에 2,3,5를 곱한 값
          int i2, i3, i5;
          for(int i=1;i<num;i++){
  • UglyNumbers/이동현 . . . . 1 match
          * @return int 코드 1:삽입완료 -1:이미 값 있음 1:맨 마지막에 추가
          public int insert(double n) {
          for (int i = 0; i < arr.size(); i++) {
          public int start() {
          int index = 1;
          while (index != 1500) {
          insert(((Double) arr.get(0)).doubleValue() * 2.0);
          insert(((Double) arr.get(0)).doubleValue() * 3.0);
          insert(((Double) arr.get(0)).doubleValue() * 5.0);
          index++;
          System.out.println("The 1500'th ugly number is "+new BigDecimal(((Double)arr.get(0)).doubleValue()));// + " " + arr.size());
          public static void main(String[] args) {
  • UglyNumbers/황재선 . . . . 1 match
          def uglyNumber(self, index):
          numberList = [pow(2,i)*pow(3,j)*pow(5,k) for k in xrange(30) \
          for j in xrange(30) for i in xrange(30)]
          return numberList[index-1]
          def printUglyNum(self, num):
          print "The 1500'th ugly number is <" + str(num) + ">."
          def testFindUglyNumber(self):
         def main():
          u.printUglyNum(n)
         if __name__ == '__main__':
          #unittest.main()
          main()
  • Unicode . . . . 1 match
         {{{In computing, Unicode provides an international standard which has the goal of providing the means to encode the text of every document people want to store on computers. This includes all scripts in active use today, many scripts known only by scholars, and symbols which do not strictly represent scripts, like mathematical, linguistic and APL symbols.
         Establishing Unicode involves an ambitious project to replace existing character sets, many of them limited in size and problematic in multilingual environments. Despite technical problems and limitations, Unicode has become the most complete character set and one of the largest, and seems set to serve as the dominant encoding scheme in the internationalization of software and in multilingual environments. Many recent technologies, such as XML, the Java programming language as well as several operating systems, have adopted Unicode as an underlying scheme to represent text.
         introduction : [http://www.unicode.org/standard/translations/korean.html]
         MultiLinugual 플랫폼을 지향하는 프로그램의 개발자라면 당연히 이해해야하는 파트임. - [eternalbleu]
         js 등에서 indexOf() 로 가져오면 UCS-4 코드가 10진수로 반환됩니다.
         문자 집합(Character Set)이랑 인코딩(Encoding)에 대한 차이도 뭐 속시원히 가르쳐주는 데가 없더군요. 결국 시간이 지나다보니 스스로 알게 되었습니다만.. 확실히 외국 자료 빼면 국내는 -_-;
  • UnixSocketProgrammingAndWindowsImplementation . . . . 1 match
         페이지의 컨텐츠를 보아하니, 따로 페이지를 뽑아내도 될것 같아 [문서구조조정] 하였습니다. 원래 페이지 이름은 '''데블스캠프2005/Socket Programming in Unix/Windows Implementation'''였습니다. - [임인택]
         주제 : Socket Programming의 기초적인 부분을 알아본다.
         #include <sys/types.h>
         #include <sys/socket.h>
         int socket(int domain, int type, int protocol);
         === domain: ===
         PF_INET : 인터넷 프로토콜 체계 사용
         PF_INET6 IPv6 : 프로토콜 체계 사용
         PF대신 AF를 사용해도 무방. (ex. PF_INET -> AF_INET)
         main(){
         int sockfd;
          sockfd = socket(AF_INET, SOCK_STREAM, 0);
          fprintf(stderr, "socket 함수에서 에러"), exit(1);
         struct sockaddr_in {
         short sin_family; // 주소 체계를 나타낸다.
         u_short sin_port; // port 번호
         struct in_addr sin_addr; // ip 주소
         char sin_zero[8]; // 쓰지 않는 주소
          ※ 왜 sockaddr과 sockaddr_in의 structure가 같을까?
         === sin_family: // 주소체계 ===
  • UploadFile . . . . 1 match
         이렇게 NoSmok:InterWiki 를 사용합니다.
  • UserPreferences . . . . 1 match
         [[Theme]]
         '''[[GetText(logout)]]'''을 누르면 쿠키가 지워지고, '''[[Gettext(Login)]]'''을 하시면 쿠키가 사용되며, 다른 곳에서도 같은 설정을 유지하며 사용하실 수 있습니다. 공공의 PC에서 [필명]이 도용되는 것을 막기 위해서 '''[[GetText(Logout)]]'''을 이용해 주시기 바랍니다.
  • Velocity . . . . 1 match
         download : http://jakarta.apache.org/site/binindex.cgi#velocity
          public static void main(String[] args) throws Exception {
          prop.setProperty("input.encoding" ,"euc-kr");
          prop.setProperty("output.encoding" ,"euc-kr");
          Velocity.init(prop); // properties 화일(velocity.properties) 를 선택할 수도 있음.
         === Plugin ===
         DreamWeaver Plugin - http://java.techedu.net/phpBB2/viewtopic.php?t=138 - 아아.. 이런 문서 먼저 만들어주신 분에게 참 감사하다는. :)
         === StrutsAndVelocityIntegration ===
  • ViImproved/설명서 . . . . 1 match
         1.VI(Visual interface Editor)
         ▶파일 데이터 파일 응용 프로그램의 데이터(binary)
         ▶Editor(unix system) Line editor 줄 단위 편집(ex ed)
         ▶Vi 저자 vi와 ex는 The University of California, Berkeley California computer Science Division, Department of Electrical Engineering and Computer Science에서 개발
         삽 입(insert)
          ^D 한 문자 back tab. autointent의 왼쪽 마진을 리셋
          행의 선두에 back tab. autointent의 왼쪽 마진을 리셋하지 않음
          O^D 행의 선두에 back tab autointent의 왼쪽 마진을 리셋
         0(영) 현 line의 첫번째 문자로 이동 I 줄의 첫번째에 삽입 :11,22w <file> 줄 11과 12사이 내용 저장
         $ 현 line의 끝으로 이동 ^i tab (삽입모드에서) :w >> <file> 작업중인 화일<file>에 저장
         ^ 현 line의 첫번째 문자로 이동 j 아래로 이동 :w! 작업중인 화일 덮어쓰기
         autoindent(ai) noai 들여 쓰기 기능 자동설정
         autoprint(ap) ap 각 명령 후에 변화를 자동적으로 화면출력
         beautify(bf) nobf 입력하는 동안 모든 제어 문자를 무시 단 tab, newline, formfeed는 제외
         lisp nolisp indentation을 lisp형식으로 삽입
         showmode noshowmode 입력 모드에서 화면의 우측하단에 "input mode"출력
         window=(w=) 편집된 내용이 저장되지 않고 쉘 명령을 사용할 경우 경고 메시지를 출력
         wrapmargin=(wm=) 0 화면상에 보여줄 행의 수를 설정
  • VonNeumannAirport/남상협 . . . . 1 match
         Input 과 output 예제가 왜 그렇게 나왔는지 이해 하는데에서 많은 오해를 해서 의도하지 않은 삽질을 하게 되었습니다. 나름대로 시작은 testCase 만들면서 했지만 제대로 테스트 케이스 만들면서 진행은 하지를 못했습니다. 그래서 테스트 케이스는 올리지 않았습니다.
          def __init__(self,cityNum,trafficList, configureList):
          for trafficData in trafficList:
          for traffic in trafficData[:-1]:
          trafficOfCity.append(int(traffic))
          for configureData in configureList:
          for configure in configureData:
          for conf in configure[:-1]:
          eachConfigure.append(int(conf))
          for configure in self.configureList:
          for con in configure[0]:
          for i in range(2,len(self.trafficList[departureGate-1]),2):
          traffic+=(abs(configure[1].index(arrivalGate)-configure[0].index(departureGate))+1)*self.trafficList[departureGate-1][i+1]
          def __init__(self):
          Data = file("airport.in")
          cityNum = int(Data.readline().split(" ")[0])
          for i in range(0,cityNum):
          trafficList.append(Data.readline().split(" "))
          while Data.readline().split(" ")[0] != '0':
          readLineOne = Data.readline().split(" ")
  • WIBRO . . . . 1 match
         Wireless Broadband Internet 의 줄임말
  • WebGL . . . . 1 match
         [Javascript]임에도 불구하고 마치 C프로그래밍 스타일의 함수들이 존재한다. [WinAPI]가 C스타일의 [OOP]이듯 WebGL 또한 C스타일의 OOP이다. 모든 함수는 WebGLcontext라는 객체에 있는데 보면 그냥 접두어를 붙이는 느낌이다.
         위의 코드를 보면 [쉐이더] 프로그램에 fragmentShader와 vertexShader를 Link 시키는 구문인데 주체인 shaderProgram은 첫번쨰 인자이고 gl은 그냥 접두어 처럼 보인다. 저 구문만 그런것이 아니라 다른 모든 함수들이 저 gl 객체에 붙어있다. 하지만 정작 gl이 주체가 아닌 것들이 많다. 따라서 래핑한 객체를 만들어 쓰는 것이 속편한데 어설프게 했다가는 무척 꼬이게 된다.
          * WebGL은 기존 OpenGL과 다르게 직접 그리기가 지원되지 않는다. 기존의 glBegin()와 glEnd()사이에서 값을 계속적으로 전달하수 없고 오직 glDrawElement()를 통한 배열을 한꺼번에 전달하는 것'만' 지원한다. 초보자들의 첫난관이다.
         Attribute는 각 포인트 별로 전달되는 정보이고 uniform 은 전체에서 공통적인 정보이다. 일반적으로 Attribute는 각 정점의 위치 정보와 각 지점의 법선 벡터 정보를을 전달한다. uniform은 일반적으로 카메라의 위치나 환경광의 위치처럼 전체적인 것을 전달한다. Attribute나 uniform은 일종의 변수인데 핸들을 얻어와서 그것을 통해 값을 전달할수 있다. 즉 Atrribute나 Uniform은 Javascript측에서 쉐이더로 정보를 보내는 것이다. varying은 쉐이더 간의 정보 전달에 사용된다. vertex shader에서 fragment shader로 값이 전달되며 반대는 불가능하다(파이프라인 구조상 당연한 것이다). 이때 vertex shader는 각 정점(꼭지점) fragment shader는 각 픽셀에 한번 호출되게 되는데 각 정점 사이의 값들은 [보간법]을 거쳐 전달되게 된다(그라디언트 같은 느낌이다 중간값을 알아서 만들어 준다).
         각 정점 사이에 있는 픽셀 마다 호출된다. 주로 광원효과를 적용한 픽셀의 최종적인 색깔이나 텍스쳐 연산에 사용된다. varying변수를 vertex shader에서 fragment shader로 넘겨주면 각 정점 사이에는 보간법으로 변환된 값이 넘어 온다.
         varying vec4 vFinalColor;
         varying vec3 vNormal;
         void main(void){
          vFinalColor = Id;
          vFinalColor.a = 1.0;
         varying vec4 vFinalColor;
         varying vec3 vNormal;
         void main(void) {
          gl_FragColor = vFinalColor + vec4(0.01,0.01,0.01, 1.0);
          "indices" : [
         var init = function(){
         setTimeout(init, 0);
          gl.bindBuffer(gl.ARRAY_BUFFER, buffer.vertex);
          gl.vertexAttribPointer(shader.aVertexPosition, 3, gl.FLOAT, false, 0, 0);
          gl.bindBuffer(gl.ARRAY_BUFFER, buffer.normal);
  • WikiNature . . . . 1 match
         The WikiNature is typing in a bunch of book titles and coming back a day later and finding them turned into birds in the Amazon.
         Writing on Wiki is like regular writing, except I get to write so much more than I write, and I get to think thoughts I never thought (like being on a really good Free Software project, where you wake up the next morning to find your bugs fixed and ideas improved).
         It reminds us of minimalist Japanese brushstroke drawings; you provide the few, elegant slashes of ink, and other minds fill in the rest.
         Really, it's not accurate to talk about a WikiNature, we would do better recognizing that Nature itself, is Wiki.
         See http://www.c2.com/cgi/wiki?WikiNature for more.
  • WikiSandPage . . . . 1 match
          <input type="hidden" name="action" value="userform">
          <input type="hidden" size="15" maxlength="20" name="password" value="">
          <input type="hidden" size="15" maxlength="20" name="passwordagain" value="">
          <input type="hidden" size="40" name="email" value="">
          <input type="hidden" class="button" value="Local timezone">
          <input type="hidden" size="40" name="user_css" value="">
          <span class="button"><input type="submit" class="button" name="logout" value="로그아웃"></span>
         [[RSS("http://zerowiki.dnip.net/zero/index.php?mode=getRSS&url=namsang",6)]]
          말이 되냐 Uplode ;; 아 moin 1.0 대로 업그레이드 해도, 이런식으로 InterMap 이면 변화없이
         http://pragprog.com/katadata/K4Weather.txt
         int main()
         [http://www.u-blog.net/gorbinsk/img/logo.png]
         http://www.nbc.com/Saturday_Night_Live/index.html
         [http://www.nbc.com/Saturday_Night_Live/index.html]
         [http://www.nbc.com/Saturday_Night_Live/index.html 쌩토요일밤]
         http://zeropage.org/wikis/nosmok/moinmoin.gif
         [http://zeropage.org/wikis/nosmok/moinmoin.gif 이쁜이사진]
         KIN
  • WikiWikiWebFaq . . . . 1 match
         '''Q:''' So what is this WikiWiki thing exactly?
         '''A:''' A set of pages of information that are open and free for anyone to edit as they wish. The system creates cross-reference hyperlinks between pages automatically. See WikiWikiWeb for more info.
  • XMLStudy_2002/Encoding . . . . 1 match
         <?xml version="1.0" encoding="ISO-8859-1"?>
         <?xml version="1.0" encoding="EUC-KR"?>
         <?xml version="1.0" encoding="KSC5601"?>
         <?xml version="1.0" encoding="UTF-8"?>
         <?xml version="1.0" encoding="UTF-16"?>
         <?xml version="1.0" encoding="Shift_JIS"?>
          *다국어 지원 웹 컨텐츠 제작시 XML과 Unicode의 결합을 역설한 내용 : [http://www.tgpconsulting.com/articles/xml.htm]
         Shuart Culshaw. "Towards a Truly WorldWide Web. How XML and Unicode are making it easier to publish multilingual
         electronic documents." MultiLingual Communications & Technology. Volume 9, Issue 3
         John Yunker, Speaking in Charsets: Building a Multilingual Web Site."
         In WebTechniques Volume 5, Issue 9 (September 2000)
  • XMLStudy_2002/XML+CSS . . . . 1 match
         <HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp">How to Write a CSS StyleSheet for Browsing XML</HTML:A>
         <?xml version="1.0" encoding="KSC5601"?>
         <DATE TYPE="BEGINNING_DATE">
         <PA>현재의 IE5.0에서는 XLink는 지원하지 않는다. 그런데, 네임스페이스를 이용하여
         XLink에서 제안되는 확장된 개념의 링크를 사용하는 것은 아직은 IE5.0브라우저
         에서는 지원이 되지않기때문에, 현재로서는 여전히 단방향의 end link가 하나로 지정되는 simple link를
         <HTML:A href = "xml_hlink.xml">여기</HTML:A>에 설명되어있다.</PA>
         [1]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp ">
         How to Write a CSS Style Sheet for Browsing XML</HTML:A>
         [2]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-overview.asp">
         Browsing XML Documents in Internet Explorer 5</HTML:A>
         <HTML:A href = "xmllink.xml">여기</HTML:A>에 설명되어있다.</PA>
         <!ATTLIST DATE TYPE (LAST_MODIFIED|BEGINNING_DATE) #REQUIRED>
          margin-top :2em;
          margin-bottom :1em;
          margin-top :0.5em;
          margin-bottom :0em;
          display :inline;
          display :inline;
          display :inline;
  • XUL . . . . 1 match
         [http://xulplanet.com/tutorials/xultu/ xulPlanet의 XUL 갓 배우기(튜토리얼) 페이지]
         [http://xulplanet.com/]
  • ZIM . . . . 1 match
          * ["ZIM/UIPrototype"] (Window&Reports) (by 패키지 개발팀)
          * Class Diagram & Interaction Diagram ( by 시스템 아키텍트)
          * OS: Linux (Zeropage)
          * CASE 도구 : Together 5.5, Rational Rose, Plastic
          * 시스템 엔지니어(System Engineer) : 이덕준
  • ZIM/EssentialUseCase . . . . 1 match
         ShowMeTheExample~
          ''XP 는 User Story에서의 사용자 무게중심 & 실제 구현시의 걸릴 Task point 으로 잡고, UP 는 기반이 될 아키텍처 순위로 잡고. 둘을 비교해서 생각하는 것도 좋겠군요. 조언 감사해요.~ ^^ --석천''
  • ZP&COW세미나 . . . . 1 match
          * Java 2 SDK: http://165.194.17.15/pub/language/java/j2sdk-1_4_2_01-windows-i586.exe
          * Platform: http://165.194.17.15/pub/language/java_eclipse/eclipse-platform-3.0M3-win32.zip
          * Extreme Programming Installed, Ron Jeffries, 인사이트
          def __init__(self,amount):
         if __name__=='__main__':
          unittest.main()
         || 이상규, 오세윤, 신재동 || Upload:win.Winner_1.0.jar ||
         || 이상규, 오세윤, 신재동 || Upload:win.Winner_2.0.jar ||
  • ZPBoard/APM . . . . 1 match
          * http://www.mysql.com/doc/en/index.html - MySQL 메뉴얼
          * ["ZPBoard/APM/Install"] - APM 설치하기
  • ZPHomePage/레이아웃 . . . . 1 match
         = Thead =
  • ZeroPageEvents . . . . 1 match
         || . || ["EightQueenProblem"] || Online Event. ["EightQueenProblem"] 문제 풀기 & 토론 || 무수; ||
         || 4.11. 2002 || ["SeminarHowToProgramIt"] || . || 세미나 & 진행 : ["JuNe"][[BR]] 참가 : 이선우, ["woodpage"], ["물푸"], ["1002"], ["상협"], ["[Lovely]boy^_^"], ["neocoin"], ["구근"], ["comein2"], ["zennith"], ["fnwinter"], ["신재동"], ["창섭"], ["snowflower"], ["이덕준"], 채희상, 임차섭, 김형용, 김승범, 서지원, 홍성두 [[BR]] 참관: ["최태호"], ["nautes"], ["JihwanPark"], 최유환, 이한주, 김정준, 김용기 ||
         || 5.10. 2002 || Internet Problem Solving Contest(IpscAfterwords) || IPSC 참여. 밤샘 프로젝트; || ["1002"], ["neocoin"], ["데기"], ["nautes"], ["구근"], ["fnwinter"], ["JuNe"] ||
         || 5.19. 2002 || ["프로그래밍파티"] || 서강대 ["MentorOfArts"] 팀과의 ["ProgrammingContest"] || ZeroPagers : ["1002"], ["이덕준"], ["nautes"], ["구근"], ["[Lovely]boy^_^"], ["창섭"], ["상협"] [[BR]] 외부 : ["JuNe"], ["MentorOfArts"] Team ||
         || 7.15. 2002 ~ 7. 16. 2002 || ["2002년MT"] || ZeroPage MT~ || 김정훈(["정훈(K)의 페이지~"]), 신성재(["teruteruboz"]), 유상욱(["whiteblue"]), 이영록(["ricoder"]), 장재니(["E=mc²"]), 정재민(["Thor"]), ["창섭"], ["상협"], ["신재동"], 김남훈(["zennith"]), 강석천(["1002"], 류상민(["neocoin"]), 정해성(["phoenix_insky"]) ||
  • ZeroPageServer/SubVersion . . . . 1 match
         = Intro =
         What's New in Subversion 1.2
          * Optional locking ("reserved checkouts")
          * Full WebDAV autoversioning
          * '''FSFS repository back end is now the default'''
          subversion 은 http 로의 접근도 제공한다. 대신에 기본제공 프로토콜보다는 속도가 느린 단점이 있다. http 의 접근은 현재 익명계정에 대해서는 checkout, read 만 사용이 가능하며 checkin 계정을 받기 위해서는 관리자에게 다음의 정보를 메일로 보내주면 추가하는 것이 가능하다.
         = SSH Login Tip =
          {{{~cpp explorer환경하에서 마우스 오른쪽 버튼을 클릭 "TortoiseSVN"->"Settings"
         D:Program FilesTortoiseSVNbinTortoisePlink.exe" -l 계정 -pw 암호
          Linux 계정이 있다면 ssh-keygen 을 이용해서 생성시키는 방법도 존재한다. 이 방법이 훨씬더 빠르게 생성된다.
          상단에 Public key for pasting into OpenSSH authorized_keys file 란에 있는 내용을 복사해서
          푸티의 에이전트로 TortoisePlink.exe 가 접속이 되는 이유는 TortoisePlink.exe가 푸티의
          {{{~cpp RSAAuthentication yes}}}[[HTML(<BR/>)]]
          {{{~cpp PubkeyAuthentication yes}}}[[HTML(<BR/>)]]
  • ZeroPageServer/old . . . . 1 match
          * [ZeroPageServer/AboutCracking]
         || [http://openlook.org/distfiles/PuTTY/putty.exe putty 한글 입력 패치 적용] || 출처[http://fallin.lv/zope/pub/noriteo/putty 장혜식님의 홈] ||
         || [http://165.194.17.15/pub/util/WinSCP2.exe WinSCP 2.0 Beta], [http://165.194.17.15/pub/util/WinSCP22.exe WinSCP 2.2]|| ssh1, 2 ftp Client ||
         || ["ZeroPageServer/InstalledTool"] || 설치된 프로그램 ||
         || [ZeroPageServer/BlockingUninvitedGuests] || . ||
          * ssh 클라이언트일 가능성이 큽니다. 작년 11월에 한글 패치한 버전의 putty 가 나왔는데 이것들로도 테스트 해보세요. 저는 잘 쓰고 있습니다. --NeoCoin
          - 상관없을것 같습니다. zeropage 에서 직접 DNS 서버 돌리면 subdomain.domain.org 같은 식으로 서브도메인도 사용할 수 있을것 같구요. - [임인택]
          지금 ZP 서버의 linux가 옛날 버젼이라면 설치된 bind 는 보안 문제가 발생한 것일지도 모르겠습니다. 현재 Solaris가 설치된 회사 서버를 3년간 방치해 두었는데 얼마전에 들어가보니 해커들의 놀이터가 되었더군요. 백도어 및 Rootkit 들이 난무했었다는.... 아마도 문제가 보안 문제가 있었던 OpenSSH 또는 Bind의 문제였던것 같습니다. '''Bind 는 보안에 문제가 없는 최신 버젼으로 업데이트''' 하는 것이 좋겠습니다. 혹시 요즘 서버 관리가 시원찮았다면 [http://www.rkhunter.org/ rkhunter]를 다운 받아서 시스템을 점검보는 것을 추천합니다. --[Passion]
          * (V) Resin 과 Apache2 연동 -> Apache/1.3.29 로 변경후 resin 기존 모듈 적재로 해결
          * man 을 영문판으로 재설치하였습니다. 확인해 보세요. --NeoCoin
          * man과 동일한 역할의 info 를 설치해 두었습니다. 사용해 보세요.
         info 명령어 }}}
          - 개강할 임새가 되니까.. 슬슬 네트웍이 말썽을 부리려는 기미를 보이기 시작하는건가요.. 작년 ObjectProgramming 숙제하면서 피씨실 사용할때 일정시각만 되면 네트워크가 먹통이 되어가지구 적잖이 난감했었는데... - [임인택]
          * 계정에서 [python] [cgi] 를 돌리고 싶은데, [ZeroPageServer/FAQ] 에 나온대로 ~beonit/public_html/cgi-bin/hello.cgi 로 접근해보아도 잘 안되네요. chmod +x hello.cgi 로 권한설정도 했습니다. 어떻게 해야 하죠?? CGI 권한을 따로 받아야 한다는 이야기도 있던데... 흠...-_- - 이승한
  • ZeroPage_200_OK . . . . 1 match
          * Cascading Style Sheet
          * '''JavaScript 1.4~1.6''' / JScript (ECMAScript)''' - http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
          * Google Chrome for Windows
         == Integrated Development Environment ==
          * JetBrains WebStorm
          * Mozilla Bespin -> Mozilla Skywriter -> Ajax.org Ace -> Cloud9 -> http://c9.io/
          * http://support.cloud9ide.com/entries/21068062-ide-file-saving-hangs ... 풋!
          * 위에 링크한 저의 Workspace Project의 index.html 파일에 메뉴 샘플을 구현해두었습니다. 상단의 Preview로 확인하면서 적절히 참조해서 만들면 도움이 될겁니다.
          * 자바스크립트에서 자주 this 얘기가 나오던데, 이번에 이야기를 들을 수 있어서 좋았습니다. 개인적인 느낌을 말하자면 함수가 데이터로 취급되는데 함수 내부에서 함수를 호출한 객체(execution context)의 정보를 사용하기 위해서 this를 사용한다는 느낌이는데 맞는지 모르겠군요. p.print를 넘기는 것도 실제로 class p에 있는 함수를 넘기는 게 아니라 p.print에 바인딩 된 어떤 함수를 넘기는 것이니까 내부의 this가 기존 OOP와 같이 해당 class의 인스턴스는 될 수 없겠죠. 그리고 제일 마음에 들었던 것은 역시 예전에 했던 스터디에서 다뤘던 자바스크립트의 네 가지 특징에 대해서 들을 수 있었다는 점이었습니다. 사실 예전 스터디 떄 무척 듣고 싶었는데 개인적인 사정으로 참가를 할 수 없어서 꽤 아쉬웠던 터라 ;;; 마지막에는 개인적인 사정으로 시간이 안 맞아서 좀 급하게 나갔는데, 그래도 최대한 들을 수 있는 데까지 듣기를 잘 한 것 같은 느낌이 들었습니다. - [서민관]
          * 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
          * JSON.stringify() 메소드와 JSON.parse() 메소드를 이용해서 JSON의 Serialization <-> Deserialization이 가능하다.
          * Builder Pattern의 일종으로 jQuery의 메소드를 실행한 이후에 jQuery 배열 객체를 반환함으로써 함수의 chainning을 해서 사용할 수 있다.
          * DOM 객체를 wrapping 한 것으로 CSS selector 문법으로 DOM에서 Element를 찾아 올 수 있다.
          * Private instance property
          * escape, unescape (deprecated) : encoding 스펙이 정해져 있지 않아서 브라우저마다 구현이 다를 수 있다.
          * window.history
          * window.location
          * Same origin policy
          * document.domain
          * window.navigator
  • [Lovely]boy^_^/Diary/2-2-15 . . . . 1 match
          * A data communication course ended. Professor told us good sayings. I feel a lot of things about his sayings.
          * A computer architecture&organization course ended too. I am worrying about a final test.
          * A merriage and family course ended too, Professor is so funny. A final test is 50 question - O/X and objective.
          * My mom went into hospital. My father is not a good status too. I worry their health. I wish that they'll recover a health.
          * A algorithm course ended. This course does not teaches me many things.
          * A object programming course ended. Professor told us good sayings, similar to a data communication course's professor. At first, I didn't like him, but now it's not. I like him very much. He is a good man.
          * I and other ZP '01 distribute junior and senior agreement papers that ZP is a formal academy.
          * Tomorrow is a unix system programming final test. It's so difficult. I'll try hard.
          * I have suprised at system programming's difference. It's so difficult. In my opinion, if I want to do system programming well, I must study OS.
          * sources for Unix system programming's final-test is so strange.--; mis-typings are so many. I am confused professor's intention.
          * Today, I went to the hospital, to see my mom. I felt easy at my mom's health.
          * Because my mom's absent, I had to work all day at our store. but a dishwashing was so interesting.
          * Today too, I have worked our store. but today is not as busy as yesterday, so I could study rest final-test.
          * I worry about father's smoking... after my mom was hospitalization, he decreases amount of drinking, but increases amount of smoking.
          * Ah.. I want to play a bass. It's about 2 months since I have not done play bass. And I want to buy a bass amplifier. A few weeks ago, I had a chance that can listen a bass amplifier's sound at Cham-Sol's home. I was impressed its sound. ㅠ.ㅠ.
  • [Lovely]boy^_^/EnglishGrammer . . . . 1 match
          * 동기 : 얼마전에 do 다음에는 원형이라는 중학교 입학하고 젤 첨 배운다고 할 수 있는 문법도 생각이 안나는 데에 놀란 인수군은 영문법을 대강이라도 한번 공부하기로 마음먹는다. 교재는 Grammar in USE 영어로 되어 있어서 어떻게 볼까 생각했지만.. 추천이 장난이 아니더군. 그래서 함 봐봤는데.. 오 한글보다 이해하기 쉽군. 쿠하하 정리나 해봐야겠다. 영어만 치다보면 영타도 늘겠지.
          ''영문법을 공부하려면 한국의 웬만한 교재보다는 NoSmok:GrammarInUse 가 낫습니다. 보통 Murphy시리즈라고 부르죠 -- 레벨별로 책이 따로 나와서 "시리즈"라고 합니다. 이와 함께 Azar시리즈도 많이 봅니다. 외국에 어학연수란 걸 나가면 90% 이상 이 교재로 공부합니다(고로 어학연수가서 교실에서 하는 공부는 별거 없습니다). 문법 공부를 할 때에는 레퍼런스북이 있으면 좋은데, PEU(''Practical English Usage'', Michael Swan)를 적극 추천합니다. 영어실력에 상관없이 두고 두고 유용하게 사용할 것입니다. see also NoSmok:영어학습법 --JuNe''
  • [Lovely]boy^_^/ExtremeAlgorithmStudy . . . . 1 match
          * IntroductionToAlgorithms
          * ["[Lovely]boy^_^/ExtremeAlgorithmStudy/MathematicalFoundations"]
          * ["[Lovely]boy^_^/ExtremeAlgorithmStudy/SortingAndOrderStatistics"]
  • callusedHand . . . . 1 match
          * 최근 관심있는 밴드: LASSE LINDH, MANDALAY, PEDRO THE LION
          * Add-On Linux Kernel Programming
          * SWING - Beginning Java 2 & SWING
          * JDBC - Beginning Java 2
          * GTK++ - Teach Yourself GTK+ In 21days
          ''(move to somewhere appropriate plz) 논리학 개론 서적으로는 Irving Copi와 Quine의 서적들(특히 Quine의 책은 대가의 면모를 느끼게 해줍니다), Smullyan의 서적들을 권하고, 논리학에서 특히 전산학과 관련이 깊은 수리논리학 쪽으로는 Mendelson이나 Herbert Enderton의 책을 권합니다. 또, 증명에 관심이 있다면 How to Prove It을 권합니다. 대부분 ["중앙도서관"]에 있습니다. (누가 신청했을까요 :) ) --JuNe''
  • eclipse디버깅 . . . . 1 match
         == Step Into - F5 ==
         == Run to Line - Ctrl + R ==
         에디터에서 커서가 위치한 곳까지 실행한다. 브레이크포인트를 새로 추가하지 않고도 코드 내 임의의 위치로 실행포인트를 옮기고 싶을 때 유용하다. 실행되지 않을 부분을 선택한 상태에서 Run to Line을 실행시키면 프로그램이 끝까지 진행돼 버릴 수 있으므로 주의해야 한다.
         == Terminate ==
  • eclipse플러그인 . . . . 1 match
         see also [(ZeroPage)Eclipse/PluginUrls]
          * In eclipse menu: window > preferences > team > svn change the default SVN interface from JAVAHL(JNI) to JavaSVN(Pure JAVA)
  • fnwinter . . . . 1 match
          InsideCPU
          Python/Win32/델파이/VB/MFC/기타등등에 쓰일 범용 Skin Library
          http://netgroup-serv.polito.it/windump/ -zennith.
  • geniumin . . . . 1 match
         == Conceptual Model of Geniumin.. ==
          * E-Mail: geniumin@hanmail.net
          * 메신저: geniumin99@hotmail.com
         == Special Ability of Geniumin.. ==
         == Interested in... ==
          * Server programing
          * Online Game
          * physical presentation in 3D Graphic
          interested...interested.....only.. yet...-.-;
  • iText . . . . 1 match
          PdfWriter.getInstance(document, new FileOutputStream("Hello.pdf"));
          e.printStackTrace();
          e.printStackTrace();
          public static void main(String args[]) {
  • iruril . . . . 1 match
          * [TheJavaMan]
          * 신사모 : [http://sinsamo.wo.ro]
  • jQuery . . . . 1 match
         - jQuery.com introduction
          * Internet Explorer, Firefox, Safari, Opera 모두에서 작동
  • ljh131 . . . . 1 match
          - 항상 마들만 사귀는 The O
  • neocoin/CodeScrap . . . . 1 match
         ostream_iterator<int> out(cout , " ");
         copy(vector1.begin(), vector1.end(), out); cout << endl;
         static const int INIT_START;
          void init(int aOption){
          if ( aOption == INIT_START )...
         const int Board::INIT_START = 0;
         win32 상의 설정 파일 api
          if ( m_nTime < (int)::GetPrivateProfileInt("FindBomb", "AMA_Time", 999, ".\FindBomb.ini")){
         %windir%\system32\gpedit.msc
         ["neocoin"]
  • neocoin/MilestoneOfReport . . . . 1 match
         = Internal Document =
          * 실행 방법,과정 (Process of Executing)
         = Thing to Select both I/E Documents =
         ["neocoin"]
  • pragma . . . . 1 match
         Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler.
         #pragma warning(disable: 4786 4788)
         NeoCoin 은 Debug 모드에서, 값을 추적할 것을 포기하고, Project Setting -> C/C++ tab -> Debug info -> Line Numbers Only 로 놓고 쓴다.
         혹시라도.. 저 #pragma warning(disable: n ... m) 을 써서 언제나 문제를 해결 할 수 있을거라고 생각하시면 안됩니다. 저 위의 설명에도 씌여있듯이, pragma directive 는 지극히.. 시스템에 의존적입니다. 그러므로, VC 에서는 먹힌다는 저 명령어가 GCC 에서는 안될수도 있고.. 뭐 그런겁니다. 확실하게 쓰고싶으시다면.. 그 컴파일러의 문서를 참조하는것이 도움될겁니다.
  • stuck!! . . . . 1 match
         설치법 - [DevCppInstallationGuide]
         '''[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다. 이것이 교재 적당히씩 읽고 와주세요'''
  • whiteblue . . . . 1 match
          * ["whiteblue/LinkedListAddressMemo"]
          * ["JavaStudyInVacation"]
  • whiteblue/LinkedListAddressMemo . . . . 1 match
         #include <iostream>
         #include <cstring>
         using namespace std;
         unsigned int count=0;
         int main()
          cin >> menuNumber;
          << "1> Input data\n"
          cin >> nam;
          cin.get();
          cin.getline(add,99);
          cin >> addNum;
          cin.get();
          cin >> nam;
          cin.get();
          cin.get();
  • zennith/SICP . . . . 1 match
         "내가 컴퓨터 과학 분야에서 가장 중요하다고 생각하는 것은 바로 즐거움을 유지해간다는 것이다. 우리가 처음 시작했을 때는, 컴퓨팅은 대단한 즐거움이었다. 물론, 돈을 지불하는 고객들은 우리가 그들의 불만들을 심각하게 듣고있는 상황에서 언제나 칼자루를 쥔 쪽에 속한다. 우리는 우리가 성공적이고, 에러 없이 완벽하게 이 기계를 다루어야 한다는 책임감을 느끼게 되지만, 나는 그렇게 생각하지 않는다. 나는 우리에게 이 기계의 능력을 확장시키고, 이 기계가 나아가야 할 방향을 새롭게 지시하는, 그리고 우리의 공간에 즐거움을 유지시키는(keeping fun in the house) 그러한 책임이 있다고 생각한다. 나는 컴퓨터 과학 영역에서 즐거움의 감각을 잊지 않기를 희망한다. 특히, 나는 우리가 더이상 선교자가 되는 것을 바라지 않는다. 성경 판매원이 된 듯한 느낌은 이제 받지 말아라. 이미 세상에는 그런 사람들이 너무나도 많다. 당신이 컴퓨팅에 관해 아는 것들은 다른 사람들도 알게될 것이다. 더이상 컴퓨팅에 관한 성공의 열쇠가 오직 당신의 손에만 있다고 생각하지 말아라. 당신의 손에 있어야 할 것은, 내가 생각하기엔, 그리고 희망하는 것은 바로 지성(intelligence)이다. 당신이 처음 컴퓨터를 주도했을때보다 더욱 더 그것을 통찰할 수 있게 해주는 그 능력 말이다. 그것이 당신을 더욱 성공하게 해줄 것이다. (the ability to see the machine as more than when you were first led up to it, that you can make it more.)"
          DeleteMe [SICP] 가 Hierarchical Wiki 로 걸려버려서 원래 의도인 StructureAndInterpretationOfComputerPrograms 의 약자인 [SICP]에 대해서 링크가 걸리질 않음.
          [노스모크모인모인] 에서 절대 주소로 접근할려면 [/SICP] 로 하면 된다. 디렉토리 같지 ^^;; 현재 혼용이니, 네가 일아서 사용해라 --["neocoin"]
  • zennith/w2kDefaultProcess . . . . 1 match
         Win32.sys가 Win32 subsystem의 커널모드 부분인데 비해서 Csrss.exe는 사용자모드 부
         작업관리줄, 바탕화면 등과 같은 사용자 셸로서 Windows의 작동에 있어 필수적인 요소
         Internat.exe - 작업관리자에서 종료 가능
         로컬 보안 인증 서버로서 Winlogon 서비스가 사용자를 인증하는데 필요한 프로세스를
         만들어 내고 이 프로세스는 Msgina.dll과 같은 인증 패키지를 이용함으로써 수행된
         되며 Winlogon 및 Win32 (Csrss.exe) 프로세스를 구동하고 시스템 변수를 설정하는 등
         이들 프로세스를 구동시킨 다음 Winlogon이나 Csrss가 종료할 때까지 대기하되, 종료
         Winlogon.exe - 작업관리자에서 종료 불가
         Winmgmt.exe - 작업관리자에서 종료 불가
  • 게임프로그래밍 . . . . 1 match
         = Setting Up SDL =
          * [http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet0508e/index.php Setting_Up_SDL]
         #include "SDL.h"
         int main(int argc,char **argv)
          SDL_Init(SDL_INIT_EVERYTHING);
  • 겨울과프로젝트 . . . . 1 match
         = Theread =
  • 겨울방학프로젝트/2005 . . . . 1 match
         || [PaintBox] || 시험끝났다고 놀지 말고 3일 빡세게 해서 JAVA로 그림판 짜기 || 보창 아영 선호 ||
         || [알고리즘] || Introdution to Algorithm 으로 공부 || 상섭 선호 보창 휘동 민경 도현 ||
  • 격언 . . . . 1 match
          AnswerMe 노스모크에서 url 디코딩하는게 달라졌는지 InterWiki 매크로를 쓸수가 없네요. 해결책 아시는분? - [임인택]
  • 고슴도치의 사진 마을 . . . . 1 match
         ▶ID : celfin ( Computer Elfin )
         ▶Hobby : Taking a picture
         ▶E-mail : celfin_2002 at hotmail dot com(MSN), celfin at lycos dot co dot kr(nateon), celfin_2000 at hanmail dot net
         ▷Bagic Java & Linux
         || [Picture Link] ||
         || [http://165.194.17.5/wiki/index.php?url=zeropage&no=3818&title=알고리즘&login=processing&id=celfin&redirect=yes algorithms] ||
         || [http://165.194.17.5/wiki/index.php?url=zeropage&no=3817&title=경시대회준비반&login=processing&id=celfin&redirect=yes preparing the ACM] ||
         || [Celfin's ACM training] ||
         || [Celfin's English] ||
         === Information ===
  • 고슴도치의 사진 마을처음화면 . . . . 1 match
         ▶ID : celfin ( Computer Elfin )
         ▶Hobby : Taking a picture
         ▶E-mail : celfin_2002@hotmail.com(MSN), celfin@lycos.co.kr(nateon), celfin_2000@hanmail.net
         ▷Phillippines tour
         ▷Mother's Digital Camera
         ▷Bagic Java & Linux
         || [Picture Link] ||
         || [http://165.194.17.5/wiki/index.php?url=zeropage&no=3818&title=알고리즘&login=processing&id=celfin&redirect=yes algorithms] ||
         || [http://165.194.17.5/wiki/index.php?url=zeropage&no=3817&title=경시대회준비반&login=processing&id=celfin&redirect=yes preparing the ACM] ||
         || [Celfin's ACM training] ||
         || [Celfin's English] ||
         === Information ===
  • 고한종 . . . . 1 match
         ||{{{LinkedIn}}} ||http://www.linkedin.com/pub/han-jong-ko/8a/445/875 ||
         ||{{{tistory}}} ||http://rino0601.tistory.com/ ||
         ||{{{github}}} ||https://github.com/rino0601 ||
         - [고한종/업적/WinAPI를 통한 테트리스]
         - ~~[고한종/업적/WinAPI로 만든 학과주점 포스기]~~
          * JAVA의 Swing으로 만든 시간표 대신 만들어주는 프로그램 (...) 사실 만들어 놓고 안쓴다. 2학년 말에 만들어 놓고 이번 학기(2013년 1학기)에 본인조차 안 쓴걸 보면 기획부터가 잘못된 물건. 일단 소개를 하자면, 수강신청 기간이 되면 포탈에 그 학기에 개강될 과목들을 정리해서 xls 파일로 올려줍니다. 이걸 받아서, poi 라는 JAVA 라이브러리? 에 넣고 돌리면 "[cell값]" 형식으로 String이 나옵니다. 그럼 이걸 stringTokenizer에 ]와 [를 토큰으로 해서 잘게 쪼개줍니다. (애초에 그런거 없이 CSV로 나오면 최고겠지만.. 할줄 모름 ㅠ). 사실 그냥 엑셀에서 CSV로 만들어 쓰면 되는 데, 그때 당시엔 사용 편의성을 도모한답시고 뻘짓 함. 어짜피 아무도 안 쓸텐데 ㅠㅠ 그렇게 얻어낸 과목의 시간정보를 ArrayList에 넣고, 그걸 가지고 backtraking인지.. 를 했던것 같음. 결국 속도는 처참했지만 -_-... 모든 결과가 나오는 것도 아님. 마지막으로 코드를 수정하고나서 테스트로 돌렸을때, 내가 실제로 수강신청했던 시간표는 나오지 않았음 ㅇㅈㄴ... - [고한종], 13년 3월 16일
         -[고한종/업적/MALogin]
          * 그래픽스 연구실에서 서울시특허 과제로 만들고 있는 것 (13년 3월) 거의 완성했는데, 기반이 된 OpenCV가 intel CPU최적화라 아이패드에서 돌리면 겁나 느려서 시연불가능 급이다 -_- 속도만 해결하면 완성인 과제. - [고한종], 13년 3월 16일
  • 곽세환 . . . . 1 match
          * [TheJavaMan]
          * [ExploringWorld]
          * [Hacking]
  • 권영기 . . . . 1 match
          * [정모/2013.2.26] - OMS : 재미있는 문제 (Indexed Binary Tree)
          * [MachineLearning 스터디]
          * [정모/2014.1.13] - OMS : Robot Path Planning
          * [정모/2014.11.19] - OMS : Bit Masking
  • 그래픽스세미나/2주차 . . . . 1 match
          PPT파일: Upload:CGseminar2.zip
         || 강인수 || Upload:GL_Report2_Insu_MFC.zip 경태형꺼랑 비슷한거..||
         || 이상규 || [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/Space.zip Space] 상하좌우 방향키와 +,- 키를 눌러보세요^^ [[BR]] [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/Space.exe Space 실행 파일] [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/ErrorSpace.exe 에러난 Space 실행 파일(멋진 에러..ㅡ.ㅡ)]||
         || 김창성 || Upload:Blending.zip ||
         [상민] 이번주 기권! --NeoCoin
  • 기본데이터베이스 . . . . 1 match
         Insert : 새로운 자료 추가
         Delete, Modify, Search 경우 자료 없으면 Can't find 라고 출력
  • 김동준/Project/Data_Structure_Overview/Chapter1 . . . . 1 match
          //가정 : 모든 A include Array, i include index, x include item
          // j , size include integer
          Item retrive(A, i) => if(i include index)
          Array Store(A,i,x) => if( i include index)
          int list[5], or *plist[5]
          #define MAX_SIZE 100
          float sum(folat [], int);
          float input[MAX_SIZE], answer;
          void main(void) {
          int i;
          for(i = 0; i < MAX_SIZE; i++) { input[i] = i; }
          answer = sum(input, MAX_SIZE);
          printf("The sum is: %f\n", answer);
          float sum(float list[], int n) {
          int i;
         int** make2dArray(int rows, int cols) {
          int **x, i;
         [http://inyourheart.biz/zerowiki/wiki.php/%EA%B9%80%EB%8F%99%EC%A4%80/Project/Data_Structure_Overview Main으로 가기]
  • 김동준/Project/OOP_Preview/Chapter1 . . . . 1 match
          private String serialNumber;
          private String builder;
          private String model;
          private String type;
          private String backWood;
          private String topWood;
          public String getserialNumber(){
          GuitarProperty(String SN, double price, String builder, String model, String type,
          String backWood, String topWood) {
          public String getserialNumber() {return this.serialNumber; }
          public String getBuilder() { return this.builder; }
          public String getModel() { return this.model; }
          public String getType() { return this.type; }
          public String getBackWood() { return this.backWood; }
          public String getTopWood() { return this.topWood; }
         class Inventory{
          private GuitarList GLPointer;
          this.GLPointer = this.GuitarList;
          while (this.GLPointer.next != null) {
          this.GLPointer = this.GLPointer.next;
  • 김수경/JavaScript/InfiniteDataStructure . . . . 1 match
         Implementing Infinite Data Structure in JavaScript.
          * {{{filter(f(a)) := for each a in seq, sequence of a which f(a) is true.}}}
  • 김영현의Wiki처음화면 . . . . 1 match
         [ProgrammingWithInterface] [좋은글귀s]
  • 김정욱 . . . . 1 match
          * MIK(Made In Korea) soft 의 설립. 우주 최고의 소프트웨어 개발사로 키우는 것이 목표.
          * WinCE 프로그래밍.
  • 김태진 . . . . 1 match
         = Curriculum Vitae of ZeroPage 21th, Tae-Jin Kim =
          * SWTV(SW Testing&Verification) 연구실에 있습니다.
          * [Refactoring/BadSmellsInCode]
          * ?action=info&all=1 를 주소 뒤에 붙이면 변경내역을 볼 수 있음.
          * action=info&all=1 를 주소 뒤에 붙이면 변경내역을 볼 수 있음. -> 그냥 페이지 보다가 i 누르는 게 더 편하지 않음? - [김수경]
  • 니젤프림/BuilderPattern . . . . 1 match
         쉽게 말해서, 아주 복잡한 오브젝트를 생성해야하는데, 그 일을 오브젝트를 원하는 클래스가 하는게 아니라, Builder 에게 시키는 것이다. 그런데 자꾸 나오는 생성/표현 의 의미는, 바로 director 의 존재를 설명해 준다고 할 수 있다. director 는 Building step(construction process) 을 정의하고 concrete builder 는 product 의 구체적인 표현(representation) 을 정의하기에.. 그리고, builder 가 추상적인 인터페이스를 제공하므로 director 는 그것을 이용하는 것이다.
         http://www2.ing.puc.cl/~jnavon/IIC2142/patexamples_files/pateximg2.gif
         Product 를 생성하는 템플릿. Abstract Interface 라고도 할 수 있다.
         Builder 를 구현한 부분. 일반적으로 다수개의 Concrete Builder 가 존재하며, Builder 가 제공하는 인터페이스를 이용해서 late binding 의 형식으로 사용하게 된다. 물론, builder pattern 에서의 주 관심하는 Product 를 만들어내는 것이다.
          private String dough = "";
          private String sauce = "";
          private String topping = "";
          public void setDough (String dough) { this.dough = dough; }
          public void setSauce (String sauce) { this.sauce = sauce; }
          public void setTopping (String topping) { this.topping = topping; }
          public abstract void buildTopping();
          public void buildTopping() { pizza.setTopping("ham+pineapple"); }
          public void buildTopping() { pizza.setTopping("pepperoni+salami"); }
          pizzaBuilder.buildTopping();
         /** A customer ordering a pizza. */
          public static void main(String[] args) {
          protected String name;
          protected String description;
          public PlanComponent(String name, String description) {
          public PlanComponent getChild(int index) {
  • 다이얼로그박스의 엔터키 막기 . . . . 1 match
          BOOL CLogInDlg::PreTranslateMessage(MSG* pMsg)
          // TODO: Add your specialized code here and/or call the base class
          if((int)pMsg->wParam==VK_RETURN || (int)pMsg->wParam==VK_ESCAPE)
  • 대학원준비 . . . . 1 match
         [http://www.icu.ac.kr/indexa.jsp 입학]
         [http://www.icu.ac.kr/AdmissionIndexList.jsp?tableName=n_anotice# 입학설명회]
         http://www.postech.ac.kr/department/cse/linus/home_kor/admission_06.htm
  • 덜덜덜 . . . . 1 match
         '''[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다. 이것이 교재 적당히씩 읽고 와주세요'''
         ||[김진아]||jin-_-a골뱅이hotmail.com|| :) || :) || :) || :) ||
         ||[이재영]||michin1213골뱅이hotmail.com|| :) || :( || :) || :( ||
         [DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
  • 데블스캠프2003/ToyProblems . . . . 1 match
         vending machine
         FileInputOutput [파일입출력] RandomFunction
  • 데블스캠프2005/FLASH키워드정리 . . . . 1 match
         parseInt
         input&DynamicText&staticText
  • 데블스캠프2006/월요일 . . . . 1 match
         ||am 04:00~06:00 ||[데블스캠프2006/CPPFileInput] [http://zerowiki.dnip.net/~namsangboy/schoolScore.html 데블스캠프2006/성적관리프로그램] [http://zeropage.org/svn/namsangboy/SchoolScore/SchoolScore.cpp Source]|| 남상협 (01) ||
         [http://wiki.izyou.net/moin.cgi/Zeropage/DevilsCamp2006]
  • 데블스캠프2006/화요일/tar/김준석 . . . . 1 match
         #include<iostream>
         #include<stdio.h>
         #include<io.h>
         #include<stdlib.h>
         using namespace std;
         void main(){
          _finddata_t data_dir;
          int h;
          int char_cpy;
          printf("파일이 열리지 않습니다.33");
          if(!(-1==(h =_findfirst("tar\*",&data_dir))))
          if((data_dir.attrib & _A_SUBDIR) != 0) continue;
          sprintf(fileName, "..\tar\%s", data_dir.name);
          printf("파일이 열리지 않습니다.");
          fprintf(write_f,"%d ",data_dir.size);
          }while(!(_findnext(h,&data_dir)));
          else printf("There is no serching!");
         #include<iostream>
         #include<stdio.h>
         #include<io.h>
  • 데블스캠프2009/월요일/Scratch . . . . 1 match
          * [http://info.scratch.mit.edu/Scratch_1.3.1_Download]
          * 운영체제에 맞게 Mac용, Windows용 중 선택하시면 됩니다.
          * Street Fighter 2009 - [http://enochbible.intra.zeropage.org/sc/sample1.sb]
          * Scratch Bros. v1.4 - [http://enochbible.intra.zeropage.org/sc/sample2.sb]
          * The mysterious ticking noise - [http://enochbible.intra.zeropage.org/sc/sample3.sb]
  • 데블스캠프2009/화요일 . . . . 1 match
         || 안혁준 || winAPI || || ||
         || 변형진 || The Abstractionism || 컴퓨터공학의 발전과 함께한 노가다의 지혜 || attachment:/DevilsCamp2009/Abstractionism.ppt ||
         ||pm 04:00~05:00 || winAPI || 안혁준 ||
         ||pm 05:00~06:00 || winAPI || 안혁준 ||
  • 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김준석 . . . . 1 match
         using System;
         using System.Collections.Generic;
         using System.ComponentModel;
         using System.Data;
         using System.Drawing;
         using System.Linq;
         using System.Text;
         using System.Windows.Forms;
         namespace TestWindowFormDevils
          int time = 0;
          InitializeComponent();
          string str = timerLabel.Text;
          string strSub = str.Substring(1) + str[0];
  • 데블스캠프2012/넷째날/묻지마Csharp/김태진 . . . . 1 match
         using System;
         using System.Collections.Generic;
         using System.ComponentModel;
         using System.Data;
         using System.Drawing;
         using System.Linq;
         using System.Text;
         using System.Windows.Forms;
         namespace WindowsFormsApplication1
          int t;
          String str;
          InitializeComponent();
          MessageBox.Show((B.Year-A.Year).ToString());
          label2.Text = t.ToString();
          label3.Text = str.Substring((t%10), 10);
          private void pictureBox1_Paint(object sender, PaintEventArgs e)
          label4.Text = e.Location.ToString();
  • 데블스캠프2012/넷째날/묻지마Csharp/서민관 . . . . 1 match
         namespace WindowsFormsApplication1
          int currentScore = 0;
          InitializeComponent();
          int moveX = rand.Next(-4, 4);
          int moveY = rand.Next(-4, 4);
          int respownX = rand.Next(this.Size.Width);
          int respownY = rand.Next(this.Size.Height);
  • 레밍딜레마 . . . . 1 match
         || http://www.aladdin.co.kr/Cover/8955610017_1.gif [[BR]] ISBN 8955610017||
          * Title : 레밍 딜레마 ( The Lemming Dilemma )
          * Point : B) B) B) B)
         시리즈 물인데, 같은 시리즈의 하나인 혜영이가 남긴 감상 [http://zeropage.org/jsp/board/thin/?table=multimedia&service=view&command=list&page=0&id=145&search=&keyword=&order=num 네안데르탈인의 그림자] 와 같은 짧고 뜻 깊은 이야기이다. 왜 이 책을 통해서 질문법을 통한 실용적이며, 진짜 실행하는, 이루어지는 비전 창출의 중요성을 다시 한번 생각하게 되었다. ["소크라테스 카페"] 에서 저자가 계속 주장하는 질문법의 힘을 새삼 느낄수 있었다.
         --NeoCoin 2002.1.6
  • 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 1 match
         Test는 OnDraw 상에서 하였다. OnDraw는 Invalidate를 통해서 OnPaint가 호출되면 자동으로 호출된다.
         void CDoubleBufferingView::OnDraw(CDC* pDC)
          CDoubleBufferingDoc* pDoc = GetDocument();
          //DoubleBuffering
          //end DoubleBuffering
  • 레밍즈프로젝트/프로토타입/파일스트림 . . . . 1 match
         || MFC 파일 스트림 || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp] ||
         || m_hFile || Usually contains the operating-system file handle. ||
         || Abort || Closes a file ignoring all warnings and errors. ||
         || Open || Safely opens a file with an error-testing option. ||
         || Close || Closes a file and deletes the object. ||
         '''Input/Output'''
         || Read || Reads (unbuffered) data from a file at the current file position. ||
         || ReadHuge || Can read more than 64K of (unbuffered) data from a file at the current file position. Obsolete in 32-bit programming. See Read. ||
         || Write || Writes (unbuffered) data in a file to the current file position. ||
         || WriteHuge || Can write more than 64K of (unbuffered) data in a file to the current file position. Obsolete in 32-bit programming. See Write. ||
         || Seek || Positions the current file pointer. ||
         || SeekToBegin || Positions the current file pointer at the beginning of the file. ||
         || SeekToEnd || Positions the current file pointer at the end of the file. ||
         || GetLength || Retrieves the length of the file. ||
         || SetLength || Changes the length of the file. ||
         '''Locking'''
         || LockRange || Locks a range of bytes in a file. ||
         || UnlockRange || Unlocks a range of bytes in a file. ||
         || GetPosition || Retrieves the current file pointer. ||
         || GetStatus || Retrieves the status of this open file. ||
  • 로그인없이ssh접속하기 . . . . 1 match
         == ssh login without password ==
          * [http://www.linuxproblem.org/art_9.html 참고글]
         Generating public/private rsa key pair.
         Enter file in which to save the key (/home/a/.ssh/id_rsa):
         Enter same passphrase again:
         Your identification has been saved in /home/a/.ssh/id_rsa.
         Your public key has been saved in /home/a/.ssh/id_rsa.pub.
         The key fingerprint is:
  • 말없이고치기 . . . . 1 match
         때로는 직접적인 정보 전달보다 간접적이고 "스스로 추론할 수 있는" 정보 전달이 더욱 효과적이고, 상대방의 실수를 드러내고 공박하는 것보다는 몰래 고쳐주는 것(NoSmok:ForgiveAndForget )이 당사자에겐 심리적 저항이 덜하므로 훨씬 받아들이기 쉽기 때문이다. NoSmok:LessTeachingMoreLearning
         누군가가 별 말 없이 삭제나 수정을 한 것을 봤다면 흥분하지 말고, 차분히 왜그랬을까를 생각해 본다(NoSmok:ToDoIsToSpeak). 고친 사람도 최소 나만큼 이성적인 인간일 것이라는 가정하에. (NoSmok:TheyAreAsSmartAsYouAre)
         이 방법은 특히 WikiMaster들이 많이 행한다. OriginalWiki의 WardCunningham 경우는 "이건 이래야 한다"는 식의 말을 특정인에게 직접 하는 일은 별로 없고, 대신 그 규칙을 어긴 글이 있을 때마다 일일이 찾아가서 단순히 그 오류만 고쳐준다 -- 말하지 않고 스스로 행함으로써 "보여주는 것"이다(NoSmok:LeadershipByShowing). 그러면 당사자는 이를 알아채지 못하고 처음 몇 번은 계속 실수를 할 수 있지만 어느 순간에 스스로 깨닫고 학습( NoSmok:동의에의한교육 )하게 된다.
  • 문원명 . . . . 1 match
          * [TheJavaMan]
  • 문제풀이게시판 . . . . 1 match
         문제풀이에 어려움을 느끼는 사람과 직접 PairProgramming을 해준다. 도우미는 "문제풀이도우미시장"이라는 위키 페이지를 유지 관리하면서 요청이 들어오면 가능한 한 빨리 그 사람과 Xper:RemotePairProgramming 혹은 실제 PP를 해서 도움을 준다. 문제를 풀 직접적 지식을 전달하는 것보다 어떤 문제건 풀 수 있는 효과적/효율적 과정을 경험케 해주는 것이 우선이라는 점을 명심한다.
          * The Algorithm Design Manual
          * Moa:ProgrammingPearls
          정확히 이해가 안가지만, ["문제분류"] 중에 있는 EightQueenProblem , ["가위바위보"] 같은 문제의 ["지도분류"]와 같은 여정을 만들어 놓는건가요? 아, 게시판을 만든다는 이야기군요. --NeoCoin
  • 박성현 . . . . 1 match
          1. INS ( Image Network Service ) - ( 2010년 )
          1. Win32API - ( 2010년 ~ 2011년 )
          * [http://wiki.kldp.org/wiki.php/DocbookSgml/Ask-TRANS How To Ask Questions The Smart Way]
  • . . . . 1 match
         [DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
         [http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌]
  • 불의화법 . . . . 1 match
          * Title : 불의 화법(In the line of fire)
  • 사람들이모임에나오지않는다 . . . . 1 match
         사람들을 다그쳐 봐야 아무런 효과가 없습니다. 어떻게 그들에게 영향을 줄까(influence)를 고민해야 합니다. 내가 그 사람을 바꾸려고 하지말고, 그 사람이 스스로 바뀌어서 "자발적으로 나오고 싶은 마음이 굴뚝 같게" 될 수 있는 상황을 만들어야 합니다.
         "Reform the environment, stop trying to reform the people. They will reform themselves if the environment is right." --NoSmok:BuckminsterFuller
  • 삼총사CppStudy . . . . 1 match
          * [삼총사CppStudy/Inheritance]
  • 삼총사CppStudy/Inheritance . . . . 1 match
         class CMarine // 마린을 정의한 클래스
          int m_Attack;
          int m_Defence;
          int m_HP;
          int m_Attack;
          int m_Defence;
          int m_HP;
         CMarine Force[12]; // 이렇게 하면 부대안에는 마린밖에 넣지 못한다.
          아.. 이 문제를 어떻게 하면 좋을까~? 이럴때 사용할 수 있는 스킬이 바로 '''상속(Inheritance)'''이다.
          int m_Attack;
          int m_Defence;
          int m_HP;
         class CMarine : public CUnit // 이렇게 상속받는다.
  • 상협/Medusa . . . . 1 match
          * A High-Performance Internet Server Architecture
  • 상협/삽질일지/2002 . . . . 1 match
          * Java 에서 강제 형변환을 C++ 스타일 int(변수), 이런식으로 하다가 수치해석 그래프를 자바로 못 그렸다. ㅠㅜ 그래서 MFC로 하다가 나중에 Java로 짜놓았던 Tridiagonal Matrix 가 MFC로 옮기면서 각종 문제가 발생... 다시 Java로 하려다가, 예전의 형 변환의 문제 발생..ㅠㅜ, 결국 MSN으로 형들에게 물어봐서 자바에서 형 변환은 (int)변수 이런식밖에 안된다는 것을 알았다. 기본에 충실하자.. ㅡㅡ;
          * Driver driver = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 이거 할때 메인 함수에서 throws Exception 를 하지 않으면 thrown 을 잡거나 선언 해야만 한다는 메시지가 뜬다. 아직 이유는 모르겠다.
          * Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 이거는 main 함수 내부가 아닌 곳에서는 에러 뜬다. 엄청 삽질했다. ㅠㅜ 아직 이유는 모르겠다.
          ''Exception Handling 에 대해서 이해해야 할 것 같은데. Exception 은 해당 함수가 throws 등으로 발생을 시키고, Java 의 경우 그 Exception 을 반드시 처리를 해주는 곳을 만들어야 하지. 해당 메소드 내에서 Exception 이 발생은 하는데, 그 메소드에서 예외처리를 바로 하고 싶지 않으면 (즉, 그 Exception을 그 메소드 내에서 처리하지 않고, 그 메소드를 호출했던 곳 등에서 처리를 한다고 한다면) throws 로 해당 메소드에서 exception 을 또 던져주는 식으로 되겠지. 만일 Class.forName(...) 쓴 구문을 try - catch 로 예외를 또 잡는다면 이야기가 다르겠지만. 자바는 Exception 를 강요하는 관계로 예외는 catch 에서 무엇을 하건, 반드시 해당 발생된 예외를 잡아줘야 함. (그 덕에 최악으로 뻗을 일이 적지. 예외는 발생하더라도) --석천''
          * 지금까지 자바에서 if(String1 == String2) 이게 안 먹혀서 계속 고생 했다. 알고 보니 String Class 의 CompareTo 메소드를 사용해야 했다. 허접 삽질.. ㅡㅡ;
          * 오늘은 그렇게 큰 삽질은 아니지만 요새 별다른 삽질이 없어서 적어본다. 오늘 비행기게임 프로젝트를 하고 있는데 파일에서 적 비행기 경로를 읽어와서 실행하는거를 하는데 이상하게 계속 안되는 것이었다. 분명히 난 맞게 텍스트 파일에 적이 나올 위치를 숫자로 적었고, 정확한 명령어를 사용했는데 말이다. 그래서 계속 삽질하다가 잠깐 밖에 나갈 일이 생겼다. 그런데 걷다가 곰곰히 생각하니깐 왠지 파일읽어 온것을 프로그램에서 string 형으로 생각한거 같았다. 그때 아차 하는 생각이 들었다. 역시 삽질은 안된다고 계속 반복하기보다는 원인을 곰곰히 생각해야 한다는 교훈을 얻었다. 뭐 몸이 그렇게 안따라 주지만. ㅡㅡ;
          * 간만에 쓴다. 삽질일지.. -_-;; 그동안 너무 놀았나.. 쩝.. 이번 삽질은 내가 처음으로 환타스탁한 소켓 플밍 연습하는데, API로 작성된 WinSock 소스 가지고 send랑 recv 가지구 놀고 있는뎅... 글자가 계속 깨져 나왔당.. 미치고 환장할일.. -_-;; 정모때 남훈이형이 어떻게 해서 되기는 되었는데 이유는 몰랐다.. 그래서 희망을 안 버리고 계속 삽질 해봤는데.. send랑 recv의 타이밍이 서버와 클라이언트가 맞지 안아서 였다.. 쩝..테스트 결과 서버가 send먼저 하고 클라이언트가 recv하면 깨져 나왔당..서버가 recv하고 클라이언트가 send하면 글씨가 안깨진다..-_-;;.. 이게 규칙인가~ 쩝.~
  • 새싹C스터디2005 . . . . 1 match
         [http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다.
         [새싹C스터디2005/pointer]
         이제 기본적인 문법은 다 다루었다는 전제 하에 머리 쓰는 것을 해볼 생각입니다. 첫번째 다룰 것은 Sorting입니다.
         단축계산(short-circuit evaluation)의 개념을 설명한 프로그램을 읽고 이 프로그램에서 4개의 printf()함수를 실행했을 때, i, j의 값이 왜 그렇게 나오는지를 설명하시오.
         int i, j;
         printf(“%d %dn”, i, j); /* 1 2 is printed */
         printf(“%d %dn”, i, j); /* 0 2 is printed */
         printf(“%d %dn”, i, j); /* 1 4 is printed */
         printf(“%d %dn”, i, j); /* 2 4 is printed */
         [DevCppInstallationGuide] // 인스톨 가이드 입니다.
          언어 공부 전에 교양을 쌓고 싶다면 주제 토론을 해보는 것도 괜찮을 것입니다. [ExploringWorld]에서 그렇게 했다고 알고 있습니다.--[Leonardong]
         신입생 C 과정 중에 함수를 잘 다룰 수 있게 해주세요. Refactoring 세미나시 함수를 아는 전제하에 할 것입니다. --재동
         [새싹C스터디2005/pointer]와 [포인터 참고자료]페이지가 따로 노네요.--[Leonardong]
  • 새싹교실/2011/A+ . . . . 1 match
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
          * 한종 - printf,scanf 부터 시작하여 if문 쓰는법까지 배웠다, while, do while도 언뜻 배우긴했지만 기억이 안남;
         int arr[10]={0,1,2,3,4,5,6,7,8,9}; //맞나?
          아마 이날 switch와 for, continoue, break를 배웠던것으로 기억한다.
  • 새싹교실/2011/AmazingC/6일차 . . . . 1 match
         #title 새싹교실/2011/AmazingC/6일차
          * 반환형: int, char, float, double 등
         #include <stdio.h>
         int sum(int a,int b){
         int sum2(int a,int b);
         int main(){
          printf("%d + %d = %d\n", 1,2,sum(1,2));
          printf("%d + %d = %d\n", 3,5,sum2(3,5));
         int sum2(int a,int b){
          * LIFO(Last In First Out): 마지막으로 들어온 요소가 가장 먼저 pop으로 빠져나온다. - 쓰레기통으로 비유.
  • 새싹교실/2011/GGT . . . . 1 match
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
  • 새싹교실/2011/學高 . . . . 1 match
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
  • 새싹교실/2011/學高/8회차 . . . . 1 match
         #include <stdio.h>
         int count=0;
         void hanoi(char from,char to,char mid,int num){
          // Input your code
         int main(){
          int numOfRings;
          printf("원판의 개수: ");
          scanf("%d",&numOfRings);
          hanoi('A','C','B',numOfRings);
          printf("총 실행회수: %d\n",count);
          * passing by value(call by value와의 차이점)
          * index는 0부터 시작한다
  • 새싹교실/2011/데미안반 . . . . 1 match
         #include <stdio.h>
         int main(void)
          printf("Hello, World!\n");
          * ; 는 문장의 끝을 나타내므로, printf("Hello World"); 처럼 어디까지 내용이 있다 나타내는 것처럼 빈 공간도 빈 공간 그대로 인식이 되지 않았나 싶어요.
          * printf를 왜 제일 처음 배우나요?
          * A언어 : ALGOL을 말합니다. 고급 프로그래밍 언어(어셈블리나 기계어를 저급 프로그래밍 언어라고 합니다)로 각광받던 포트란ForTran에 대항하기 위해 유럽을 중심으로 개발된 프로그래밍 언어입니다. ALGOL은 Algorithm Language의 약자로서, 이름 그대로 알고리즘 연구개발을 위해 만들어졌습니다. 하지만 ALGOL은 특정한 프로그래밍 언어를 지칭하기 보다는 C언어나 파스칼과 같이 구조화된 프로그래밍 언어를 지칭하는 말(ALGOL-like programming language)로 쓰입니다. [http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=68855131&qb=Q+yWuOyWtCBC7Ja47Ja0IEHslrjslrQ=&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=ghtBIz331ywssZ%2BbORVssv--324794&sid=TYBj6x1TgE0AAE@GUeM 출처 링크! 클릭하세요:)]
          * 입, 출력 함수 - printf, scanf
         #include <stdio.h> //printf 함수 사용
         int main(void)
          int val1 = 4;
          int val2 = 2;
          printf("두 수의 덧셈: %d\n", val1+val2);
          printf("두 수의 뺄셈: %d\n", val1-val2);
         #include <assert.h> //assert 함수 사용
         int main(void)
          int val1 = 4, val2 = 2;
         #include <assert.h> //assert 함수 사용
         int main(void)
          int val = 10;
         #include <assert.h> //assert 함수 사용
  • 새싹교실/2011/앞반뒷반그리고App반 . . . . 1 match
          * [The C Programming Language]. 일단은.
          #include <stdio.h>
          #include <assert.h>
          int main(){
          int n=1;
          Assertion failed: (n>100), function main, 과 같이 오류뜨면서 프로그램이 종료됨.
          * 시험기간 직전에 질문시간이었어요. ~~저밖에 오지 않았지만~~ 이날 새롭게 배운것은 (수업시간에 필요없다고 넘긴것이라 필요없었음에도 잔다고 필요없다는 사실을 몰랏음) redirection이었는데요! 뭐냐니 input과 output을 바로 프로그램에서 받고 띄우는 것이 아니라 다른 문서에서 불러오거나 집어넣는 것이었어요. 지금까지는 인풋은 무조건 scanf로 직접 넣었는데, 그것과는 다른것!!이었죠. 사실 방법은 지금 잘 기억나지를 않네요 -_- 아무튼 이런 신기한걸 배웠습니다. -[김태진]
          * 오늘은 포인터를 배웠어요. ********별-. 선언할 때 int *a;로 선언하게 되면 *a는 a의 주소에 있는 값을 나타내는거였지요. 음.. 하다가 현 형이 하던 프로젝트에 잠깐 지워놓고 예시를 들었다가 xcode를 끄는 바람에 소스가 날라가버렸지요.... 포인터가 있으면 지정된 크기보다 큰 용량의 자료도 불러오기 쉽다는 것도 배웠구요. 아무튼 유용하게 쓸 수 있을거 같아요 -[김태진]
  • 새싹교실/2012/AClass/3회차 . . . . 1 match
         -#include<stdio.h>
         int main()
          int a,b;
          printf("%d",a+b);
         -#include<stdio.h>
         int main()
         int a,b;
         printf("%d %d",a/b,a%b);
         -#include<stdio.h>
         int main()
         printf("%g ",a*b/2);
         -#include<stdio.h>
         int main()
         printf("%.2f ",c*c*3.14);
         -#include<stdio.h>
         int main()
         printf("%.3f ",(float)(n1+n2+n3)/3);
         -#include<stdio.h>
         void swap(int *a,int *b);
         int main()
  • 새싹교실/2012/우리반 . . . . 1 match
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
         #include ----- => source=code 소스
         coding
          * Coding, 소고기?
         === Ice Breaking ===
         int main()
          * printf를 사용하는 방법, %d란 무엇인가.
          * #include는 뭘 하는 것인가. 좀 더 상세히 말해줄 필요가 있겠다.
          1.int a=10,b=12,temp;가 있는데 a에 있는 값을 b에 넣고, b에 있는 값을 a에 넣는 프로그램을 짜 보세요.
         #include <stdio.h>
         int main(){
          int a=10,b=12,temp;
          printf("%d %d",a,b);
          2.자료형이란 무엇인가, int, float,char,double이 뭔지 생각해보도록 합시다.(모르면 물어봐요~ :) )
         #include <stdio.h>
         int main(){
          int a=21,b=2,c;
          printf("안녕하세요, 우리반입니다. 1+3=%d",c+b);
         (추가 compile이란 High level language , 즉 인간이 구분하기 쉬운 언어로 작성된 프로그램을 Machine language(기계어)로 번역하여 처리하는 작업이라고 생각합니다.-[권도현]
  • 새싹교실/2012/해보자 . . . . 1 match
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
          * sizeof(int) = 4, sizeof(char) = 1, sizeof(short) = 2 etc.
          1. #define pi 3.141592를 이용하여 구의 겉넓이, 부피를 계산하고 출력하는 프로그램을 만드시오.(코드를 여기에 올려주세요)
          2. swap(int num1, int num2)함수를 구현하시오. 함수 호출을 배우지 않았기 때문에, 그리고 포인터를 아직 배우지 않았기 때문에 기본적인 코드를 제공합니다.
         void swap(int num1,int num2);
         int main(void){
         int num1, num2;
         printf("정수 2개를 입력하시오: ");
         printf("num1: %d, num2: %d\n",num1, num2);
         void swap(int num1,int num2){
         printf("after swap\nnum1: %d, num2: %d\n",num1, num2);
         #include <stdio.h>
         int main(void){
          int num;
          printf("짝수");
          printf("홀수");
          - parenthesis(괄호)를 이용하여 우선순위를 부여할 수 있다. ex) if((x==2&&y==3)||z==4)
         #include <stdio.h>
         int main(void){
  • 새싹교실/2013/라이히스아우토반/3회차 . . . . 1 match
          * int에서 탈출해 봅시다.
         #include<stdio.h>
         int main()
          printf("%s%f",asdf,NulbI);
          printf("%s%lf",asdf,NulbI);
          printf("%s%d",asdf,NulbI);
         #include<stdio.h>
         int main()
          int num1 = rand()%10000; //rand()는 임의의 수를 돌려주는 함수.
          int num2 = rand()%10000;
          int sub = num1-num2;
          int ans;
          printf("%d-%i는 뭘까요? : ",num1,num2);
         #include<stdio.h>
         #include<stdlib.h>
         #include<Windows.h>
         #define TURN_GAP 500
         int main()
          int myHP = 10000;
          int GwaJaeHP = 10000;
  • 새싹교실/2013/라이히스아우토반/4회차 . . . . 1 match
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
  • 새싹교실/2013/라이히스아우토반/6회차 . . . . 1 match
          * continue 쓰는 상황을 보여 줌.
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
         그후 배열에 대한 간단한 개념을 배우면서 continue를 어떻게 써야 하는지 배웠습니다.
  • 새싹교실/2013/라이히스아우토반/7회차 . . . . 1 match
          * 선언법 ex) int {{{arr[10]}}};
          * 선언할 때 초기화 하는 법. ex) int arr[]={0,1,2,3}; int {{{arr[5]={0}}},};
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
  • 새싹배움터05 . . . . 1 match
         || 4_5/2 || [후각발달특별세미나] ([신재동]) || Refactoring에 관한 것 || 냄새를 잘 맡게 게 됨. ||
         || 5_5/16 || [Debugging/Seminar_2005] || Debugging ||VisualStudio에서 Debugging 방법 + Eclipse에서 Debugging 방법 + 효율적인 디버깅에 대한 토론 ||
          C, 발표잘하는법, PPT제작 기법, [Python], [PHP], [ExtremeProgramming], ToyProblems, Linux, Internetworking(TCP/IP), Ghost(demonstration), OS(abstraction), OS+Windows, Embedded System, 다양한 언어들(Scheme, Haskell, Ruby, ...), 보안(본안의 기본과 기초, 인터넷 뱅킹의 인증서에 대해..), C언어 포인터 특강(?), 정보검색(검색 엔진의 원리와 구현), 컴퓨터 구조(컴퓨터는 도대체 어떻게 일을 하는가), 자바 가상머신 소스 분석
          [PythonLanguage], [PHP] (WebProgramming), [ExtremeProgramming] (XP를 적용시켜 코드가 아닌 다른 무언가를 만들어 보자 -_-a ), Ghost 사용법, 발표잘하는법, PPT제작비법, OS개발
         XP를 할 때 몇명의 Python 하는 사람이 있으면 좋겠습니다. PairProgramming을 위해서요. --재동
          음 어떤게 좋을까요?? 많아 보였는데 실제로 하려고 생각하면 몇가지 없기도 하네요. 가능한 주제를 먼저 골라보면... [Python], [ExtremeProgramming] 이 대표적인데... - [톱아보다]
  • 서지혜 . . . . 1 match
         Someday you'll say something that you'll wish could take back - drama, House
          * dead line, 중간 목표 필요
          * Accountable Goal Setting
          1. Training 1000시간
         == ON DOING ==
          1. Training Diary
          * 위키 : [http://swmaestro.openflamingo.org]
          1. English Speaking Study
          * see also [EnglishSpeaking/2012년스터디]
          * see also [Spring/탐험스터디]
          1. English Speaking Study
          * see also [EnglishSpeaking/2012년스터디]
          * 기념으로 Jetbrain사의 RubyMine구매 (12/21 지구멸망기념으로 엄청 싸게 팔더라)
          * see also [Spring/탐험스터디]
          1. Training Diary
          * 디버거를 사용할 수 없는 환경을 난생 처음 만남. print문과 로그만으로 디버깅을 할 수 있다는 것을 깨달았다. 정보 로그, 에러 로그를 분리해서 에러로그만 보면 편하다. 버그가 의심되는 부분에 printf문을 삽입해서 값의 변화를 추적하는 것도 효과적이다(달리 할수 있는 방법이 없다..). 오늘 보게된 [http://wiki.kldp.org/wiki.php/HowToBeAProgrammer#s-3.1.1 HowToBeAProgrammer]에 이 내용이 올라와있다!! 이럴수가 난 삽질쟁이가 아니었음. 기쁘다.
          1. [Spring/탐험스터디/wiki만들기]
          * Spring Study는 참 오래 하는듯
          * 하지만 아직도 beneficiary일 뿐 contributor가 아니다.. spring project에 기여하기 프로젝트를 했으면 어땟을까? 처음엔 작게 bug fix부터..
          1. [http://nforge.zeropage.org/projects/mymensingh 동네 검색 종결자]
  • 소수구하기 . . . . 1 match
         누군가 [자유게시판]에 다음과 같은 문제를 질문을 했다. 글이야 기분나쁘지만, NeoCoin은 이것이 pc로 가능한가가 궁금해 졌다.
         #include <stdio.h>
         #include <time.h>
         #include <math.h>
         #define DECIMAL 10000
         #define MAX_PRIME 5*DECIMAL
         static int primeArr[1*DECIMAL] = {2, };
         static int i, j, flag, primeArr_p, limit, count = 0;
         int main(void) {
          limit = (int)sqrt((double)i);
          printf("%d 이하 소수n",MAX_PRIME);
          printf("%f 초n", (double)(end - start) / CLK_TCK);
          printf("소수 %d 개 발견n",primeArr_p);
         NumberTheory를 공부해라. --JuNe
          마침 정수론을 보고 있었습니다. 허나 제시된 '임의의 큰수에 대한 소수 판정 방법'에서 위의 시공간의 문제를 줄여줄 여지가 보이지를 않내요. 저 문제 내준 사람은 어떻게 풀라는 궁금해요. 11자리라.. 좀더 생각해 봐야겠습니다. --NeoCoin
         723만자리짜리 소수가 발견되었다네요 [http://ucc.media.daum.net/uccmix/news/foreign/others/200406/08/hani/v6791185.html?u_b1.valuecate=4&u_b1.svcid=02y&u_b1.objid1=16602&u_b1.targetcate=4&u_b1.targetkey1=17161&u_b1.targetkey2=6791185&nil_profile=g&nil_NewsImg=4 관련기사] - [임인택]
          BBC의 방송 기사를 옮겨서 기사가 부실한것 같다. [http://bbs.kldp.org/viewtopic.php?t=39037&highlight=%BC%D2%BC%F6 관련내용] 그리고 이해가 안가는게, 메르센 소수를 발견하는게 그 사람의 목표였는지, 아니면 발견된것이 메르센 소수인지도 이해가 안가게 해두었지. 것참 관심없는 내용이라고 저렇게 해둔건가.--NeoCoin
  • . . . . 1 match
          * [새싹C스터디2005/pointer]
          ||[임수연]||theeric 골뱅이 hotmail 닷 com|| ||
          ||[장이슬]||sting825 골뱅이 msn 닷 com|| ||
         == Info ==
         [Linked List/숙제]
         main(){
         http://prof.cau.ac.kr/~sw_kim/include.htm
  • 수업평가 . . . . 1 match
         ||ArtificialIntelligenceClass || 0 || 1 || 2 || -2 || 1 || 1 ||1 ||
         ||CeeProgrammingClass || 6 || 6 || 3 || -3 || 12 || 5 ||2.4 ||
         ||DigitalEngineeringClass || 1 || 1 || 1 || 2 || 5 || 3 ||1.66||
         ||DiscreteMathematicsClass || 8 || 4 || 7 || 2 || 21 || 6 ||3.5 ||
         ||JavaProgrammingClass || 4 || 4 || 4 || 1 || 13 || 2 ||6.5 ||
         ||LinuxSystemClass || . || . || . || . || . || . ||. ||
         ||SoftwareEngineeringClass || 6 || 6 || 5 || -8 || 9 || 5 ||1.8 ||
         ||SoftwareEngineeringClass송기원|| 4 || 3 || 2 || 3 || 12 || 2 || 6 ||
         ||ProgrammingLanguageClass || 12 || 8 || 11 || 1 || 32 || 8 ||4 ||
         ||OperatingSystemClass || 1 || 1 || 0 || -2 || 0 || 1 ||0 ||
         ||OperatingSystemClass박철민 || 1 || -2 || -3 || -4 || -8 || 2 ||-4 ||
         ||ObjectModelingClass || . || . || . || . || . || . ||. ||
         ||LinuxClass || -1 || -1 || -1 || -1 || -4 || 1 || -4 ||
  • 시간관리하기 . . . . 1 match
         ==== Getting Things Done (끝도 없는 일 깔끔하게 해치우기) ====
         '''The Simplest Thing That Could Possibly Work'''
  • 실시간멀티플레이어게임프로젝트/첫주차소스1 . . . . 1 match
         plane= [random.randrange(-300,-100), random.randrange(100,300)]
         print " Select "
         print " 1. Move "
         command = raw_input()
          command = raw_input()
         print command
         print earth
         print plane
         [InvestMulti - 09.22 ]
  • 영어학습방법론 . . . . 1 match
          * 기본적으로 접두어,접미어,어근을 가진 단어들은 Latin & Greek 계열의 단어로써 고급단어, 학문적인 단어들임. 따라서 일상생활영어에서는 나타나는 빈도가 아주 낮은 단어들임. 단 어느정도 영어가 되고 고급영어를 공부하는(GRE,SAT) 사람들에게는 괜찮음
         === 질문 2. 히어링. 특히 단어 자체의 발음을 외우다가 문장내에서 연음사이에 그런 단어들을 어떻게 알 수 있는가? 전치사(on, of 등등)과 관사 (a, the, these)등 발음을 확실하게 하지 않는 단어들을 어떻게 알 수 있는가? ===
          * ex) I feel like go into the.. (X) : 의미로 모른다[[BR]]
          I feel like going to the.. (O) : 의미를 안다.[[BR]]
          feel like ~ing 문법을 알아야한다. [[BR]]
          * The Longman Dictionary of Contemporary English (Addison Wesley Longman, 3rd Edition이상)
          * Practical English Usage (Author : Swan) 문법 index가 잘되어 있음. 글을 읽다가 모르는 문장, 문법일때 손쉽게 찾아서 볼 수 있음
          * Grammar in Use (Author : Raymond Murphy)
          * 자신의 WPM (Word per Minute)으로 읽기 속도를 측정한다.
          * 페이지당 3, 4단어 정도 모르는게 적당. Level선택두 아주 중요함(읽기만 아니라 듣기도 해야하기때문) Cambridge, Longman, Oxford같은 출판사에서 나온 것을 선택하는 것이 좋음. Penguin Readers 시리즈가 유명함. Tape과 책이랑 같이 있음. 같이 구입 보통 각 책마다 level이 표시되어 있음(단어숫자라던지 교육과정정도를 표기) Tape : 성우가 재밌게 동화구연을 하는 것이라면 더 재밌다. 더 집중할 수 있다. ^^
          * http://technetcast.com - 전산학자들, 유명한 저자의 강의, interview, conference 발표등이 있음
  • 예수는신화다 . . . . 1 match
          * Title :예수는 神話다 - 기독교 탄생의 역사를 새로 쓰는 충격보고(The Jesus Mysteries)
          * My Point
  • 위시리스트 . . . . 1 match
          * 크롬북 [http://www.google.com/intl/en/chrome/devices/ 링크 - [:안혁준 안혁준]]
          * [http://books.google.co.kr/books?id=oowq_6bAgloC&printsec=frontcover&dq=go+lang&hl=ko&sa=X&ei=5f-WU8rTCM_-8QXu5oGwAw&redir_esc=y#v=onepage&q=go%20lang&f=false the way to go]
          * http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8991268838
         The art of computer programming 1 ~ 4A
         Building Machine Learning Systems with Python 한국어판
  • 위키설명회2005/PPT준비 . . . . 1 match
         6502 는 16bit addressing이 가능한 CPU 였습니다. 즉, $0000 ~ $FFFF 였죠.
         6502 는 13가지 메모리 access 방식이 있었는데, 그중 하나가 zero page addressing 입니다.
         주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
         1992년 : 동남은행 Firm banking system, 치관 운영 관리 프로그램, 세탁소 관리 프로그램, 세일 정보 통신 재해자 관리 프로그램
         Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
         리스트: 공백과 * 한개; 1., a., A., i., I. 숫자로 된 items; 1.#n start numbering at n; space alone indents.
         BackLink 혹은 ReverseLink.
         많은 사람들이 그냥 아무 생각없이 링크 달 수 있다는 편리함으로 SeeAlso의 사용에 유혹을 받지만 SeeAlso에 있는 링크는 [InformativeLink]여야 한다.
         위키위키는 한 주제에 대한 기록이 영원히 남는다(WikiNow).
  • 유혹하는글쓰기 . . . . 1 match
         작가에게 고마운 점이 하나 더 있다. 책을 읽는 동안 [TheElementOfStyle]을 읽고 싶은 충동을 참을 수 없었다. 드디어 때가 온 것이다!
  • 이영호/개인공부일기장 . . . . 1 match
         ☆ 구입해야할 책들 - Advanced Programming in the UNIX Environment, Applications for Windows, TCP/IP Illustrated Volume 1, TCP/IP Protocol Suite, 아무도 가르쳐주지않았던소프트웨어설계테크닉, 프로젝트데드라인, 인포메이션아키텍쳐, 초보프로그래머가꼭알아야할컴퓨터동작원리, DirectX9Shader프로그래밍, 클래스구조의이해와설계, 코드한줄없는IT이야기, The Art of Deception: Controlling the Human Element of Security, Advanced Windows (Jeffrey Ritcher), Windows95 System Programming (Matt Pietrek)
         ☆ 앞으로 공부해야할 책들(사둔것) - Effective C++, More Effective C++, Exeptional C++ Style, Modern C++ Design, TCP/IP 네트워크 관리(출판사:O'Reilly), C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Physics for Game Developers(출판사:O'Reilly), 알고리즘(출판사:O'Reilly), Hacking Howto(Matt 저), Windows 시스템 실행 파일의 구조와 원리, C언어로 배우는 알고리즘 입문
         ☆ 레퍼런스 - 리눅스 공동체 세미나 강의록, C언어 함수의 사용법(함수 모음), 데비안 GNU/LINUX, C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Secure Coding 핵심원리
         2005년 7월 4일 시작(주말마다) : Socket Programming
         2005년 7월 30일 시작(주말마다) : TCP/IP SOCKET PROGRAMMING(Bible)
         6 PE 구조 공부(마스터 수준). & Windows Kernel(리눅스 커널과의 차이점)
         7 API 공부(마스터 수준). & Windows Kernel(리눅스 커널과의 차이점)
         3일 - 대항해시대 온라인 새 버전 Reverse Engineering 준비.
         8일~~31일 - Reverse Engineering (Assembly + PE + Kernel + Packing + Unpacking + Encrypt + Decrypt), 몇몇개의 Game Cracking. 몇몇개의 하드에 저장된 쉐어웨어 시리얼 제작.
         1일 (월) - System Programming
         1일 (월) - 한차례 내 실력이 워핑 했다. 높은 수준으로 올랐다. PCB와 Linux Kernel에 관한 것을 배웠다.
         31 (일) - Network Programming(멀티쓰레드 - POSIX, MUTEX, SEMAPORE), System Programming(Kernel)
         29 (금) - C++(템플릿, Exceptional Handling)
         28 (목) - C++(연산자 오버로딩, 연산자 오버로딩으로 String 클래스 디자인 해보기.)
         23 (토) - Compilers(정말... 정말 이 책 못보겠다. 어렵다. 미치겠다. 같은 부분 3번 읽고서 반정도 이해 되니 이거 무슨 왜 배워야되는지 이유를 알아야 머리에 들어오는데 그냥 무지막지하게 이론만 쓰다니.), Socket/System Programming in C (지난주 복습, 고급입출력, Broadcast/Multicast)
         21 (목) - Compilers, C++공부 시작(C++자체가 쉬워 7일만에 끝낼거 같음. -> C언어를 안다고 가정하고 C++를 가르쳐 주는 책을 보기 시작.), 기본문법, namespace, function overloading, class 추상화, 은닉성까지 완벽하게 정리.
         ☆ 18 (월) - binaryfile to textfile && textfile to binaryfile 소스를 짬. eady.sarang.net계정의 sources에 있음. 모든 커맨드를 막아둔 곳에서 유용하게 쓰임.
         ☆ 18 (월) - /usr/bin/wall Command에 관심을 보임. bof만 제대로 먹히면 root를 먹을 수 있을 것 같음. (binutils 소스를 구해서 분석해봐야겠음.)
         17 (일) - Socket/System Programming in C (Multiplexing)
         16 (토) - Socket/System Programming in C (Signal 처리와 Process간의 Pipe 사용법(IPC)), 유리수, 카네기 행복론.
  • 이영호/미니프로젝트#1 . . . . 1 match
         OS : Linux 체제
         Language : C & Linux System Function
         1. Client Console에 메세지를 입력하면 IRC Server로 문자열을 전송한다. -> Main Process
         2. 서버로부터 메세지 중 PING 부분 처리 -> 1번째 Child Process
         main.c -> IRC Server로 메세지를 보내는 역할을 하고 자식 프로세스를 생성한다.
         request.c -> IRC Server로 부터 날아오는 PING에 대한 PONG 처리.
         우선 구현할 부분 : main의 일부, parse의 PING 처리부분, request 부분
         // 자동으로 #linux 채널까지 접속 됨.
         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
         #include <sys/wait.h>
         #include <sys/types.h>
         #include <sys/socket.h>
         #include <netdb.h>
         #include <unistd.h>
         #include <arpa/inet.h>
         #define MSG_MAX 1024
         #define NICK "whoami_"
         #define HOST "irc.hanirc.org"
  • 이영호/지뢰찾기 . . . . 1 match
         모기도 많고 지뢰찾기도 안되고 해서 지뢰찾기 Reverse Engineering
         Crack: 분석 완료 직후, Inline Patch로 배열 부분을 손보고 지뢰 찾기 시작 후 고급 기록 1초 갱신 완료.
         int func(int limit)
          int num = (int)rand();
         main_func()
          int base = 0x1E; // 가로길이 (30) <- 원래 main_func()의 매개변수로 받아온다.
          int height = 0x10; // 세로길이 (16)
          int count = 0x0A; // 지뢰 갯수(10)
          int map[height][base] = {0x0f, }; // 눈여겨 볼점은 x좌표는 뒤에 y좌표는 앞에 썼다는 점.. 지뢰 없는 곳은 0x0f로 기록 있는 곳은 0x80
          int ret_base, ret_height;
          continue;
  • 인수/Assignment . . . . 1 match
         == incompleted assignment queue ==
         || AI || 9/7 || 9/7.자정전까지 || 나는 인공 지능 시스템인가? 에 대한 자신의 생각을 A4 반 장 정도(10line?) dwkim@cau.ac.kr로 제출 || || O ||
         || DB || 9/13 || 9/18, 수업 || Fig4-12 Insurance DB Schema. find PK and FK || || O ||
         || 모델링 || 9/26 || 10/15 || 3장 연습문제 || so fxxking hw... || O ||
          * Oh.. Thank you. I'm checking my assignment, too. That's good~ -- [창섭]
  • 임민수 . . . . 1 match
          * E-Mail : lminsu84 at hotmail.com
          * MSN : lminsu84 at hotmail.com
          * [TheJavaMan]
  • 임인책/북마크 . . . . 1 match
          * [http://www.internals.com/articles/apispy/apispy.htm API Spying Techniques for Windows 9x, NT and 2000]
          * [http://zeropage.org/~dduk/ace/Addison.Wesley.The.ACE.Programmers.Guide.chm ACE Programmer's Guide] ([http://zeropage.org/~dduk/ace/APG.zip example code])
          * http://sangam.sourceforge.net/ -> Xper:RemotePairProgramming 을 [Eclipse]에서 해주게 하는 플러그인!! 한번 경험해 봐야겠다!!
          * [http://codeguru.earthweb.com/system/apihook.html API Hooking Revealed]
          * [http://www.mozilla.or.kr/zine/?no=291 FireFox 트랙백]
          * Seminar:SoftwarePioneers
          * Seminar:CurseVod
  • 임인택/책 . . . . 1 match
         The elements of programming style
  • 전문가되기세미나 . . . . 1 match
          * well-defined task
          * informative feedback
          * Technical Environment with Automated Tests, Configuration Management, and Frequent Integration
  • 정모 . . . . 1 match
          * on/offline 모임 시간
         ||||2023.03.29||[김동영]||||||||learning to rank||
         ||||2023.09.20||[방석현]||||||||Rust - Object Oriented Programming with Rust||[정모/2023.09.20/참석자]||
         ||||2023.11.08||[박주용]||||||||LinkedIn의 시대||[정모/2023.11.08/참석자]||
         지난번 [정모]를 관찰하면서, 뭔가가 잘 안된다는 생각이 들어서 NeoCoin 군과 ProblemRestatement 를 약간 적용해보았다. 사람들마다 의견들은 다르겠지만, 참고해보기를.
          -> Online (주로 Wiki를 통해 이루어지는) 에서 결정할 내용과 Offline 에서 결정할 내용을 구분하지 못한다.
          -> Offline 에서 충분이 결정할 수 있는 일들을 Online(Wiki) 으로 미루어버린다.
          -> 해결책 : 어떻게 하면 토론을 효과적으로 할것인가에 대한 brain storming 이나, 학습 등.
  • 정모/2002.5.16 . . . . 1 match
          * HCI(Human Computer Interaction)발표 하겠습니다. 이번 심리학과 리포트 때문에 작성하던 것인데, 같이 하시는 분께서 관련 업계 종사자라서, 너무 많은 자료 때문에 제가 치일 정도 입니다. 일단 방대한 자료는 필요시 드릴수 있고, (관련 논문, Samsung 개발자료 etc, xp, aqua, palm guide line 등) 발표 골자는 기본적으로 심리학의 이해 시간에 발표 자료 기반으로 컴공과에 맞추어 발표 하겠습니다. 못했지요. 약간 아쉽네요. 차후 HCI자료가 필요하신분이 있거나, 이런 분야도 있구나 란걸 알고 싶으면 세미나 해드립니다. --상민
  • 정모/2002.7.11 . . . . 1 match
          * ["ProjectPrometheus"] - 도서관 정보 관리 시스템
          * Instance MP3 - 한번만 사용하는 MP3 만들기
  • 정모/2003.1.15 . . . . 1 match
          * Java - 곧 시작할 예정... (["JavaStudyInVacation"] 참조)
          * 그 밖에 진행하고 싶은 스터디 - Windows API 와 MFC 스터디를 2월 중에 하기로 했음
  • 정모/2004.1.20 . . . . 1 match
          * TheJavaMan 모임 일요일 2시로 변경
  • 정모/2004.1.6 . . . . 1 match
          * 자바 스터디 ( TheJavaMan ) :
  • 정모/2004.2.17 . . . . 1 match
          * OneWiki:TheJavaMan 진행중.
  • 정모/2004.2.3 . . . . 1 match
          * TheJavaMan 은 프로젝트 참여자 전원이 참여하는 프로젝트인 비행기 게임 만들기를 새로 시작
  • 정모/2004.3.2 . . . . 1 match
          * RummikubProject - continued
          * TheJavaMan - 종료
  • 정모/2007.1.29 . . . . 1 match
          3. 영자 신문 놀이( The play of English paper)
  • 정모/2011.10.5 . . . . 1 match
          * [Spring/탐험스터디]
          * AOP(Aspect-Oriented Programming)은 트랜잭션 처리 등 핵심기능은 아니지만 코드에 포함되어 유지보수를 어렵게 하는 부가기능을 분리해내는 패러다임으로 OOP(Object-Oriented Programming)를 대체하는 것은 아니고 보완하는 역할을 한다.
          * 구글 I/O에서 I/O는 Innovation in the Open을 의미한다.
          * Since 1991을 내주신 [이승한] 선배님이(가) 문화상품권을(를) 획득하였습니다.
  • 정모/2011.5.9 . . . . 1 match
          * 이번 정모는 뭔가 후딱 지나간? ㅋㅋ 아무튼.. 4층 피시실에서 한 OMS가 뒤에서 다른 걸 하는 사람들의 시선까지 끌어던 모습이 생각이 나네요. 그리고 한 게임이 다른 게임에 들어가서 노는걸 보니 재밌기도 하고, 재미있는 주제였습니다. 그리고 이번주 토요일에 World IT Show에는 어떤 것들이 있을지 궁금하네요. 저번에 International Audio Show에 갔을때에도 다양한 오디오와 헤드폰을 보고 청음할 수 있어서 좋았는데, 이번에도 다양한 것들을 많이 볼 수 있을 거 같아 기대됩니다. 음.. 근데 이번 정모때에는 이거 이외에 잘 기억이 안나네요; - [권순의]
  • 정모/2012.1.27 . . . . 1 match
          * Devils Camp with another univ.
          * [고한종] 학우의 '''새해복 많이 받으세요''' 부제 : Theorem of Aggro // 세뱃돈
  • 정모/2012.3.12 . . . . 1 match
          * [변형진]의 [http://zeropage.org/seminar/59923 Type Safety using Java Generics].
          당장 학우들이 학교에서 배우는 버전은 아마도 Java SE 5.0과 6일 것이므로 혼란을 피하기 위해 JLS 3e 기준으로 설명했습니다. Java SE 7의 JLS SE7e 에서는 The Diamond <>를 이용한 Type inference가 추가된 것이 가장 큰 특징이지요. 이를테면,
          Map<String, List<Person>> m = new HashMap<String, List<Person>>(); // JLS, 3e
          Map<String, List<Person>> m = new HashMap<>(); // JLS, Java SE 7e
          * 요즘은 C++0x를 봐도 그렇고, Java를 봐도 그렇고.. type inference를 선호하는 것 같네요?ㅋㅋ -[박성현]
          * 사고가 확장되는 건 언제나 즐거운 일이네요. 수학의 기본 정의를 이용하여 Data type을 설명하신 것을 보며, 놀라웠습니다. 프로그래밍 관련 생각을 할 때 마다, 매번 '아 나의 사고(thinking)의 도메인이 너무 작어 ㅜㅜ'라는 생각을 많이 하였는데, Data type의 정의를 들으면서 '내가 평소에 인지(recognize)하지 못했기 때문에, 깊게 생각해보려고 해도 다른 분야의 개념들이 자연스럽게 생각이 떠오르지 않는구나.'라는 생각을 해보게 되었습니다. 이런 건 계속 연습을 해야겠지요 ㅜㅜㅋ 뒤쪽 부분도 상당히 흥미로웠습니다만.. 어제 몸이 아파서 밤에 잠을 못 잔 관계로; 결국 OMS듣다가 정신이 안드로메다로 날아가서 제대로 못들었네요.. 그리고 회장은 항상 수고하네요. 갑자기 많은 일을 하게 되었을텐데 수고하십니다 ㅋ -[박성현]
  • 정모/2013.1.15 . . . . 1 match
          * [안혁준] 학우의 Planet Wars 제작기
  • 정모/2013.5.13 . . . . 1 match
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * TIP : Internet Explorer를 제외한 브라우저(FireFox라던가 Chrome이라던가)로 들어오면 각 항목 우측에 "편집"이라고 떠요. 좀 더 편하게 수정 할 수 있죠.
  • 정모/2013.5.20 . . . . 1 match
         [http://www.worlditshow.co.kr/main/main.php 홈페이지]
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * TIP : Internet Explorer를 제외한 브라우저(FireFox라던가 Chrome이라던가)로 들어오면 각 항목 우측에 "편집"이라고 떠요. 좀 더 편하게 수정 할 수 있죠.
  • 정모/2013.7.15 . . . . 1 match
          * [남근우] 회원의 'Introduction to psychology'
         == GDG miniCon 2013 ==
          * 오늘(15일) 7시부터 코엑스 그랜드볼룸에서 진행합니다. (https://sites.google.com/site/gdgminicon)
  • 정모/2013.9.4 . . . . 1 match
          * 클린 코드 : SRP(Single Responsibility Principle), DIP(Dependency Inversion Principle) 방식을 공부하였고 디자인패턴 중 템플릿 메소드에 대해서 공부하였습니다.그리고 스레드에 대해서 공부 하였습니다. trello와 github연동하는 방법이 있습니다.상당히 유용할 것같으므로 관심있으신분들은 조금만 찿아보시면 쉽게 하실수있습니다.
  • 정수민 . . . . 1 match
         #include <stdio.h>
         #include <stdlib.h>
         int main()
          int i, j;
          for ( j = 2 ; j < 10 ; j++ )printf("%d*%d=%2d ", j, i, i*j );
          printf("n");
         #include <stdio.h>
         #include <stdlib.h>
         void randem_x(int count);
         void randem_y(int count, int save);
         void winning_number();
         void make_number(int k);
         const int max_position = 6;
         int randemsoo[2][6];
         int main()
          int count, save;
          printf("중복 횟수입력 : ");
          printf("n");
          winning_number();
         void make_number(int k){
  • 제12회 한국자바개발자 컨퍼런스 후기 . . . . 1 match
         || 14:00 ~ 14:50 || KT Cloud 기반 애플리케이션 개발 전략 (정문조) || Event Driven Architecture (이미남) || 성공하는 개발자를 위한 아키텍처 요구사항 분석 방법 (강승준) || JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링 (원종석) || Java와 Eclipse로 개발하는 클라우드, Windows Azure (김명신) || Apache Hadoop으로 구현하는 Big Data 기술 완벽 해부 (JBross User Group) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
         || 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
         || 16:00 ~ 16:50 || 대용량 고가용성 분산 캐쉬서버(infinispan)를 활용한 웹서비스 (이용혁) || 대박날때 후회말고, 성능큭정 자주하자!/성능측정도구 nGrinder (김광섭) || 모바일 웹 개발 플랫폼 (현철주) || IT 개발자 환경의 문제점과 개선점 등 (김효상-IT노조) || 분산 애플리케이션 개발을 위한 기업 통합(EIPs) 전략 (차정호) || SW 융합의 메카 인천에서 놀자! || 되돌아 보는 스프링 프레임워크 (KSUG 커뮤니티) ||
         || 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
         || 18:00 ~ 18:50 |||||||||||||| Closing 및 경품추첨 ||
          그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
  • 조재화 . . . . 1 match
          *WIndows Program(API,MFC)
  • 졸업논문/서론 . . . . 1 match
         이제 많은 사람의 입에 오르내리는 웹2.0이라는 개념은 오라일리(O'Reilly)와 미디어라이브 인터내셔널(MediaLive International)에서 탄생했다.[1] 2000, 2001년 닷 컴 거품이 무너지면서 살아남은 기업들이 가진 특성을 모아 웹2.0이라고 하고, 이는 2004년 10월 웹 2.0 컨퍼런스를 통해 사람들에게 널리 알려졌다. 아직까지도 웹2.0은 어느 범위까지를 통칭하는 개념인지는 여전히 논의 중이지만, 대체로 다음과 같은 키워드를 이용해 설명할 수 있다. 플랫폼, 집단 지능, 데이터 중심, 경량 프로그래밍 모델, 멀티 디바이스 소프트웨어.
  • 중위수구하기/문보창 . . . . 1 match
          final int MAX_SIZE = 100000;
          final int SENTINEL_NUM = -999;
          private int elements[];
          private int length;
          elements = new int[MAX_SIZE];
          public void inputNumber()
          Scanner input = new Scanner(System.in);
          for (int i = 0; i < MAX_SIZE; i++)
          elements[i] = input.nextInt();
          if (elements[i] == SENTINEL_NUM)
          public int findMidiumNumber()
          int mid = (int)Math.floor(0.5 * length + 0.5);
          public void sortElement(int start, int end)
          int min;
          for (int i = start; i < end - 1; i++)
          min = i;
          for (int j = i + 1; j < end; j++)
          if (elements[min] > elements[j])
          min = j;
          swapElement(i, min);
  • 지금그때2003 . . . . 1 match
         [지금그때/OpeningQuestion]
         [지금그때2003/규칙] - Seminar:SimpleRule
         컨셉인 [지금알고있는걸그때도알았더라면]을 더 잘 드러내고, 전달력이 좋은 제목을 제시해 주세요. 제가 3분 고민하고 지은거라서 ;; --NeoCoin
          주제가 어떤거지? 현재 지어진 제목을 보면 '미래를 예측하는 방법'에 관한 내용인것 같고, [지금알고있는걸그때도알았더라면]은 '어떤것에 초점을 두어야 하는가'라는거 같은데.. 전자라면.. 앨런 케이의 말을 살짝 인용하며 정말 멋질것 같은데.. "The best way to predict the future is to invent it." - Alan Kay --[sun]
          그렇군요. 그런 느낌이 드네요. 후자에 가깝지만, 후자도 정답은 아닌것 같아요. 어감을 약간 바꾸어서 [내일알것을지금알수있다면] 정도는 어떨까요? 아니면 정말 그냥 [선후배이야기자리] 할까요. ;; --NeoCoin
          [지금그때] 는 그 자체를 용어로, 이미지를 만들기 위해서 지은 것에 어느정도의 목적이 있습니다. 선후배이야기자리가 [지금그때]가 축약하는 내용을 상징하기에는 부족하다고 생각이 되었고, 새로운 용어를 만들면서, 그 자체에 의미를 부여하고, 우리가 평소에 부를수 있도록 짤막하게 해보았습니다. ex) 지금그때 에서 xx한 형식을 적용해보는 것은 어떨까요? --NeoCoin
         도우미를 해주실 분 많이 자원해 주세요. 우리는 이것을 통해서 많은것을 얻을수 있을 것 입니다. --NeoCoin
         [상민]은 오프라인 홍보때 대단히 많이 버벅였습니다. 거의 계획하지 않은 말들에 대하여 버벅였는데, 가슴이 아픕니다. --NeoCoin
         2층을 빌렸다. 그런데, 너무 쉽게 빌릴수 있어서 어이가 없었다. --NeoCoin
          전체 내용을 위키로 만들 계획입니다. --NeoCoin
          흑흑.. 10년만에 돌아와 이 페이지를 보니, 열심히 전체를 정리해서 위키로 만들었는데 위키데이터 이식 과정에서 유실되었었네요. 아쉬워라.. --NeoCoin
  • 지금그때2006/홍보 . . . . 1 match
         Upload:NowThen2006ContactList.xls
  • 최대공약수 . . . . 1 match
         === input ===
         The GCD of 4 and 8 is 4
          || 김태훈([zyint]) || C || 30분 || [최대공약수/김태훈zyint] ||
  • 최대공약수/허아영 . . . . 1 match
          int temp;
         잘못된 변수로 print한 것을 발견..
         #include <stdio.h>
         void main()
          int x2, y2, x, y,remainder;
          printf("두 숫자 입력 (ex| 5 6):");
          int temp;
          remainder = x2 % y2; // x2= 나눠질 값. y2= 나누는 값. remainder= 나머지.
          y2 = remainder;
          printf("x = %d, y = %d\n GCD is %d", x, y, x2);
         #include <stdio.h>
         void Eu_clidian(int x, int y);
         void main()
          int x, y;
          printf("두 숫자 입력 (ex| 5 6):");
         void Eu_clidian(int x, int y)
          int x2, y2, remainder;
          remainder = x2 % y2;
          y2 = remainder;
          printf("The GCD of %d and %d is %d\n", x, y, x2);
  • 최소정수의합/송지훈 . . . . 1 match
         find = [n+1|n <- [1..], (n*(n+1)/2) <= 3000 <= ((n+1)*(n+2)/2)]
         #include <iostream>
         using std::cout;
         using std::endl;
         int main()
          int sum = 0, integer = 1;
          sum = sum + integer;
          integer++;
          cout << "The smallest 'n' for making the number what we want" << endl;
          cout << "-->" << integer << endl;
          |otherwise = x + little_sum xs (y-x)
  • 최소정수의합/임인택 . . . . 1 match
         def minint(num):
          hae = (int)(max(hae1, hae2))
         class TestMinInt(unittest.TestCase):
         if __name__=='__main__':
          #unittest.main(argv=('','-v'))
          print minint(3000)
  • 코바예제/시계 . . . . 1 match
         시간 객체에 대한 인터페이스는 ObjTimeServer이며 getTime()이라는 메소드를 가지고 있는데 getTime()는 문자 형식으로 현재의 시간을 반환해 준다. CORBA 객체를 작성하는 첫번째 단계는 인터페이스를 만드는 것이다. 인터페이스는 IDL로 작성되며 인터페이스는 IDL 컴파일러로 컴파일된다. 이 IDL 컴파일러는 기본적으로 사용자가 이용하는(예를들면 VisiBroker) ORB에 포함되어 있는 것이다. IDL로 작성된 인터페이스를 컴파일하면 컴파일러는 두 개의 코드 파일을 생성해 준다. 이 코드 파일들은 각 IDL 컴파일러가 사용하도록 약정된 프로그래밍 언어로 되어 있다. 여기에서 사용하는 ORB는 Java ORB이므로 코드 파일은 Java(Stub, Skeleton)로 되어 있을 것이다. IDL 컴파일러에 의해 생성되는 코드는 프록시 객체(proxy object) 및 스켈레톤 코드이다. 클라이언트는 프록시 객체를 사용하여 IDL로 표현된 인터페이스 타입의 객체 레퍼런스에 대한 호출을 생성한다. 바꾸어 말하녀 프록시 객체는 클라이언트가 작업을 위해 사용하는 대리("stand-in") 객체인데 원격 객체가 마치 지역 객체처럼 보이게 해준다는 것이다. 스켈레톤 코드는 이러한 인터페이스를 지원하는 객체에 액세스하기 위해 사용된다. 생성되는 코드는 위치 투명성을 구현한다. 위치 투명성을 통해 객체 레퍼런스를 변환하여 네트웍 연결을 퉁해 원격 서버로 보내며, 객체 레퍼런스에 대한 오퍼레이션에 따르붙는 파라미터를 ["마샬링"]하고, 이를 객체 레퍼런스가 지시하는 객체의 현재 메소드에 전달하여 메소드를 수행하고 그 결과를 반환하려고 하는 것이다. 바꾸어 말하면 클라이언트는 IDL 컴파일러에 의해 생성된 프록시 객체를 가지고 작업을 하는데, 그것이 마치 지역 객체로 작업하는 것처럼 보일 것이라는 의미이다. ORB와 통신하는 것이 프록시 객체의 임무이며 ORB는 네트웍 연결을 관리하고 파라미터를 실제 서버 함수에 넘겨주며 결과를 리턴한다. 이런 식으로 수행에 대한 투명성을 유지한다.
          interface ObjTimeServer {
          string getTime();
         public String getTime() throws SystemException {
          return ("The current time is : " + current_time);
         public static void main(String [] args) {
         ORB orb = ORB.init();
         System.err.println(e);
         클라이언트 구현은 기본적으로 다음 세 가지 단계를 통해 이루어진다. 먼저 CORBA 환경, 즉 ORB를 초기화한다. ORB를 초기화한다는 것은 ORB 의사 객체(pseudo-object)에 대한 객체 레퍼런스를 얻게 된다는 것을 의미한다. ORB가 '의사 객체'라 불리는 이유는 그 메소드가 런타임 시스템과의 통신을 통해 라이브러리의 형태로 제공되며, 의사 객체 레퍼런스는 CORBA 인터페이스 오퍼레이션에 대한 파라미터로 전달될 수 없기 때문이다. 그 다음 단계는 객체 레퍼런스를 얻는 것이다. 객체 레퍼런스는 불투명한 데이터 구조이다. 그러나 객체 레퍼런스를 문자열로 바꿈으로써 지속성을 가지게 될 수 있다. 이것은 '객체 레퍼런스의 문자열화'라 불리며, 그 결과 얻어지는 문자열을 일컬어 '문자열화 객체 레퍼런스'라고 한다.(IOR) 이 문자열화 객체 레퍼런스는 원래의 "유효한" 객체 레퍼런스로 다시 바뀔 수 있다. 이 과정은 CORBA, 즉 ORB 인터페이스에서 정의된 두 가지 오퍼레이션 object_to_string()과 string_to_object()를 이용하여 이루어진다. 모든 CORBA 2.0 호환 ORB는 상호 운용 가능한 문자열화 객체 레퍼런스를 실제 돌아가는 객체 레퍼런스로 바꿀 수 있다. 적절한 타입으로 객체의 범위를 줄이면 그러한 결과를 얻을 수 있다. 이러한 오퍼레이션을 'narrow'라 한다. ORB를 초기화하고 객체 레퍼런스를 얻은 후에야 CORBA 프로그래밍은 원래 의도한 표준 객체 지향 프로그래밍처럼 동작하게 된다. 클라언트가 객체의 메소드를 호출하게 되면, 실제로 그 메소드는 원격 객체와 함께 동작하지만 클라이언트가 보기에는 지역 객체와 함께 동작하는 것처럼 보인다.
         public static void main(String [] args) {
         ORB orb = ORB.init();
         object myObj = orb.string_to_object(args[0]);
         System.err.println(e);
  • 큐와 스택/문원명 . . . . 1 match
         여기서 의문점은 string헤더 파일을 include하지 않고 배열을 char *형으로 하고 #1,#2,#3을 strcpy를 사용하여 고치고 실행한 후,
         가능하다면, 전체 코드를 올려주세요. 지금 제 생각대로라면, 불가능한 코드를 말씀하시는 것 같아서요. --NeoCoin
          밤(10시 이후)에 답변드리겠습니다. 저에게는 상당한 학습의 기회가 될것 같군요. 재미있네요. 일단, 글로 표현하기에 자신이 없거든요. 주변의 사람들을 붙잡고 물어보는 것도 좋은 방법이 될것 같습니다. 그리고, 학교 교제의, call By Value, call By reference 와 Pointer 관련 부분을 읽으시면 좋겠습니다. --NeoCoin
         #include <iostream>
         #include <string>
         using namespace std;
         const int ASIZE = 5;
         void main()
          std::string a;
          char * array[ASIZE]; // Pointer의 배열입니다. 즉, 문자를 저장할 공간은 아닙니다.
          // char 를 가리킬수 있는 주소를 저장할수 있는 32bit 값들의 Pointer들 5개
          // 각 Pointer들은 의미 없는 값들로 채워져 있습니다.(컴파일러 의존)
          int tail = 0, status = 3;
          int select, count;
          for(int i = 0 ; i < ASIZE ; i++)
          strcpy(array[i], "empty"); // Pointer가 가르키는 부분이 우연히 접근 가능한 메모리 공간이라면
          cin >> select;
          cin >> array[tail]; // array[tail] 은 아직까지 의미없는 메모리 영역을 가리키는
          // 하나의 Pointer입니다. 그 영역에 임의로 문자를 채우는 것이므로
          array[count] = array[count+1]; // string의 경우와 달리, Pointer 값만 복사됩니다.
  • 타도코코아CppStudy . . . . 1 match
          * FileInputOutput
          * 저도 잘 안써서 모르지만 F9 키로 break point 를 잡은 뒤, F11 키를 누르면 debug 가 되는 걸로 알아요^^ - 대근([CherryBoy])
  • 토비의스프링3/오브젝트와의존관계 . . . . 1 match
         package springbook.user.domain;
          String id;
          String name;
          String password;
          public String getId() {
          public void setId(String id) {
          public String getName() {
          public void setName(String name) {
          public String getPassword() {
          public void setPassword(String password) {
         package springbook.user.dao;
         import springbook.user.domain.User;
          Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook", "spring", "book");
          PreparedStatement ps = c.prepareStatement("insert into users(id, name, password) values(?,?,?)");
          ps.setString(1, user.getId());
          ps.setString(2, user.getName());
          ps.setString(3, user.getPassword());
          public User get(String id) throws ClassNotFoundException, SQLException{
          Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook", "spring", "book");
          ps.setString(1, id);
  • 토이/숫자뒤집기/김남훈 . . . . 1 match
         #include <stdio.h>
         #include <string.h>
         const int MAX_BUF = 10;
         void inverseNumber(const char * input);
         int main(void) {
          char input[MAX_BUF];
          scanf("%s", input);
          inverseNumber(input);
         void inverseNumber(const char * input) {
          int i;
          int len = strlen(input);
          printf("%c", input[i]);
          printf("\n");
         public class InverseNumber {
          public void inverse(String input) {
          char [] c = input.toCharArray();
          for (int i = c.length - 1; i >= 0; i--)
          System.out.print(c[i]);
          System.out.println();
          public void inverse(int input) {
  • 파이썬으로익스플로어제어 . . . . 1 match
         다음 win 32 extension 라이브러리를 설치하신뒤, 인터프리터 쉘에서 입력해보세요.~
          * [http://prdownloads.sourceforge.net/pywin32/pywin32-204.win32-py2.4.exe?download Python 2.4 버전]
          * [http://prdownloads.sourceforge.net/pywin32/pywin32-204.win32-py2.3.exe?download Python 2.3 버전]
         from win32com.client import Dispatch
         ie = Dispatch("InternetExplorer.Application")
         ie.Document.login.user_Id.value = "reset"
         ie.Document.login.passwd=" "
         ie.Document.login.submit()
          * ie의 type이 instance라고 나오는데, ie가 사용할 수 있는 메소드(맞나요?)에 대한 설명이 있는 문서가 어디 있나요? 어제 보여주신 id, pw를 입력폼에 넣는 메소드 및 사용법을 알고 싶어요. -- 재선
          자세한 내용은 http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp 에의 컴포넌트들을 참조하세요. 주로 알아야 할 객체는 WebBrowser, Document 객체입니다. (login 예제는 나중에~) --[1002]
          * Document.body.innerHTML 이렇게 하면 body 에 있는 내용을 다운로드 받을 수 있다
  • 파일 입출력_3 . . . . 1 match
         #include <iostream>
         using namespace std;
         int main()
          int a,b,c;
          printf("a = ");
          printf("b = ");
          printf("c = ");
          printf("Input filename : ");
          fprintf( fpt_1, "a = %d \nb = %d \nc = %d", a,b,c); //printf와 사용법 비슷
  • 파일입출력 . . . . 1 match
         #redirect FileInputOutput
  • 프로그래밍/ACM . . . . 1 match
          * class Main
          * BigInteger, String.split, 대부분의 io 라이브러리 등 제한
          public String readLine() {
          StringBuffer buffer = new StringBuffer();
          int lg = 0, car = -1;
          car = System.in.read();
          return buffer.toString().trim();
  • 프로그래밍은습관이다 . . . . 1 match
         프로그래밍은 습관이다. 그래서 학습과 반(反)학습 모두 쉽지 않다. 특히 NoSmok:UnlearnTheLearned 가 어렵다. 세살 버릇 여든 가기에, 나쁜 프로그래밍 습관은 프로그래밍 언어가 바뀌어도 유지된다.
  • 프로그래밍잔치/첫째날후기 . . . . 1 match
         === Think Different! 낯선언어와의 조우 ===
         학부생이 공부해볼만한 언어로는 Scheme이 추천되었는데, StructureAndInterpretationOfComputerPrograms란 책을 공부하기 위해서 Scheme을 공부하는 것도 그럴만한 가치가 있다고 했다. 특히 SICP를 공부하면 Scheme, 영어(VOD 등을 통해), 전산이론을 동시에 배우는 일석삼조가 될 수 있다. 또 다른 언어로는 Smalltalk가 추천되었다. OOP의 진수를 보고 싶은 사람들은 Smalltalk를 배우면 큰 깨달음을 얻을 수 있다.
         >>> handan=lambda a:[a*b for b in range(1,10)]
         >>> gugudan=lambda :[handan(a) for a in range(1,10)]
         >>> gugudan=[[a*b for b in range(1,10)] for a in range(1,10)]
         >>> gugudanpair=[(a,b) for a in range(2,10) for b in range(1,10)]
         >>> printgugupair=lambda pair: sys.stdout.write("%d * %d = %d\n"%(pair[0],pair[1],pair[0]*pair[1]))
         >>> ign=map(printgugupair,gugudanpair)
  • 허아영 . . . . 1 match
         위키Page -->> [http://165.194.87.227/zero/index.php?title=%C7%E3%BE%C6%BF%B5&url=ixforyouxl click]
         FORTUNE 50 Most Powerful Women in Business 에 실리는 것!!!
         [http://money.cnn.com/magazines/fortune/mostpowerfulwomen/2006/ 링크]
         [TheTrip/허아영]
  • 허아영/C코딩연습 . . . . 1 match
         #include <stdio.h>
         #include <stdlib.h>
         int main()
          int pattern_num;
          int i, j;
          int blank;
          printf("출력 할 마름모 변의 패턴수를 입력하십시오(정수>0) :");
          printf("출력 할 마름모 패턴 모양을 입력하십시오(문자) :");
          printf(" ");
          printf("%c", pattern_shape);
          printf("n");
          printf(" ");
          printf("%c", pattern_shape);
          printf("n");
         #include <stdio.h>
         #include <string.h>
         void main()
          int i, j, k;
          printf("패턴모양을 입력하십시오 :");
          printf(" ");
  • 현재 위키에 어떤 습관이 생기고 있는걸까? . . . . 1 match
          * URL이나 dos, unix 디렉토리 구조 같아서 친숙한 것 같다. 프로그래머나 컴퓨터 파워유저는 익숙한것 같지만, 한국말에는 어울리지 않는 것 같다. --NeoCoin
          * 그것이 왜? 편한 길인가 앞으로도 편할수 있는 길인가? 나쁜점은 왜 나쁜가? 하는 것을 이야기 하자는 것이지요. 저 이야기에는 분명 많은 부분이 생략되었을 겁니다. 이 길을 내도 되는건가? 왜 사람들이 많이 다닐까? 하는 고민들이요. OneWiki 에 길을 보면서 생각해 BoA요. --NeoCoin
          * 원래 빈칸도 잘 들어 갑니다. 하지만 여전히 검색은 보장 못하지요. --NeoCoin
          * 외국에서 개발되어서 어쩔수 없다기 보다, 현재 Web 인코딩을 그대로 filename에 가져다 쓰기 때문입니다. python 스크립트 만들어저 지워요. --NeoCoin
          * 페이지가 잘못만들어 지면 로그인해서 지운다. 반하여 ZeroWiki 와 차별되는 점 --NeoCoin
          * 좀 이상한(...라기보다는 제로위키에서였다면 생소했을) 페이지(ex) [InterestingCartoon], [GoodMusic], [창섭이 환송회 사진])를 만들어봤다. --[인수]
          과연 있을까나? --NeoCoin
  • 호너의법칙/김정현 . . . . 1 match
          public static void main(String args[])
          Scanner input = new Scanner(System.in);
          System.out.print("X값을 입력 ");
          int fX = input.nextInt();
          int a[]={3,3,3,3,3,3,3,3,3,3,3};
          int mul=0;
          int sum=0;
          int output=0;
          for(int i=0;i<a.length-1;i++)
          System.out.print("n========");
          for(int i=0;i<a.length;i++) System.out.print("====");
          System.out.print("n|index|");
          for(int i=0;i<a.length;i++)
          System.out.print(" "+i+" |");
          System.out.print("n========");
          for(int i=0;i<a.length;i++) System.out.print("====");
          System.out.print("n| data|");
          for(int i=0;i<a.length;i++)
          System.out.print(" "+a[i]+" |");
          System.out.print("n========");
Found 1258 matching pages out of 7540 total pages (5000 pages are searched)

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
Processing time 1.3707 sec